前提・実現したいこと
「Windows Forms」のListViewについてです。
現在、更新ボタン押下で、とある情報(現在起動している特定のソフト)を取得し、ListViewに表示する というものを作っています。
そして、取得できた情報がなかった場合、「取得できる情報はありませんでした」的なテキストを、ListVewの中央辺りに表示したいです。
(Windowsのエクスプローラーで空のフォルダーを開けたとき、「このフォルダーは空です。」と表示されるのですが、これと同じような感じにしたいです)
これは、どうすればできるのでしょうか?
ListViewのプロパティをざっと見ましたが、そういう設定は見当たりませんでした。
C#を初めて2週間ちょっと、オブジェクト指向も詳しくは理解できていませんが、お手柔らかにお願いします。
該当のソースコード
「とある情報を取得して表示」は、「50%の確率で表示」に置き換えています。
Form1.Designer.cs
C#
1namespace ListView 2{ 3 partial class Form1 4 { 5 /// <summary> 6 /// 必要なデザイナー変数です。 7 /// </summary> 8 private System.ComponentModel.IContainer components = null; 9 10 /// <summary> 11 /// 使用中のリソースをすべてクリーンアップします。 12 /// </summary> 13 /// <param name="disposing">マネージド リソースを破棄する場合は true を指定し、その他の場合は false を指定します。</param> 14 protected override void Dispose(bool disposing) 15 { 16 if (disposing && (components != null)) 17 { 18 components.Dispose(); 19 } 20 base.Dispose(disposing); 21 } 22 23 #region Windows フォーム デザイナーで生成されたコード 24 25 /// <summary> 26 /// デザイナー サポートに必要なメソッドです。このメソッドの内容を 27 /// コード エディターで変更しないでください。 28 /// </summary> 29 private void InitializeComponent() 30 { 31 this.listView1 = new System.Windows.Forms.ListView(); 32 this.button1 = new System.Windows.Forms.Button(); 33 this.SuspendLayout(); 34 // 35 // listView1 36 // 37 this.listView1.HideSelection = false; 38 this.listView1.Location = new System.Drawing.Point(12, 12); 39 this.listView1.Name = "listView1"; 40 this.listView1.Size = new System.Drawing.Size(460, 411); 41 this.listView1.TabIndex = 0; 42 this.listView1.UseCompatibleStateImageBehavior = false; 43 // 44 // button1 45 // 46 this.button1.Location = new System.Drawing.Point(12, 429); 47 this.button1.Name = "button1"; 48 this.button1.Size = new System.Drawing.Size(460, 23); 49 this.button1.TabIndex = 1; 50 this.button1.Text = "ListViewの更新"; 51 this.button1.UseVisualStyleBackColor = true; 52 this.button1.Click += new System.EventHandler(this.button1_Click); 53 // 54 // Form1 55 // 56 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 57 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 58 this.ClientSize = new System.Drawing.Size(484, 461); 59 this.Controls.Add(this.button1); 60 this.Controls.Add(this.listView1); 61 this.Name = "Form1"; 62 this.Text = "Form1"; 63 this.Load += new System.EventHandler(this.Form1_Load); 64 this.ResumeLayout(false); 65 66 } 67 68 #endregion 69 70 private System.Windows.Forms.ListView listView1; 71 private System.Windows.Forms.Button button1; 72 } 73}
Form1.cs
C#
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10 11namespace ListView 12{ 13 public partial class Form1 : Form 14 { 15 public Form1() 16 { 17 InitializeComponent(); 18 } 19 20 private void Form1_Load(object sender, EventArgs e) 21 { 22 23 } 24 25 private void button1_Click(object sender, EventArgs e) 26 { 27 listView1.Items.Clear(); 28 29 Random random = new System.Random(); 30 if (random.Next(0, 2) == 0) 31 { 32 listView1.Items.Add("項目"); 33 } 34 } 35 } 36}
環境
- .NET Framework 4.7.2
- Visual Studio 2019
回答3件
あなたの回答
tips
プレビュー