2025.01.18 ListView にアイテムを追加する
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.Columns.Add("メーカー", 100, HorizontalAlignment.Left);
listView1.Columns.Add("パソコン名", 100, HorizontalAlignment.Left);
listView1.Items.Add("NEC").SubItems.Add("ValueStar");
listView1.Items.Add("SONY").SubItems.Add("VAIO");
listView1.Items.Add("DELL").SubItems.Add("Precision");
}
2025.01.24 ListView にアイテムを追加する
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.Columns.Add("メーカー");
listView1.Columns.Add("パソコン名");
listView1.Columns.Add("CPU");
ListViewItem lvi;
lvi = listView1.Items.Add("NEC");
lvi.SubItems.Add("ValueStar");
lvi.SubItems.Add("Core 2 Duo");
lvi = listView1.Items.Add("SONY");
lvi.SubItems.Add("VAIO");
lvi.SubItems.Add("Corei5");
lvi = listView1.Items.Add("DELL");
lvi.SubItems.Add("Precision");
lvi.SubItems.Add("Corei7");
}
2025.01.20 ListView に文字列配列をアイテムとして追加する
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.Columns.Add("メーカー", 100, HorizontalAlignment.Left);
listView1.Columns.Add("パソコン名", 100, HorizontalAlignment.Left);
string[][] s1 = { new string[2] { "NEC", "ValueStar" },
new string[2] { "SONY", "VAIO" },
new string[2] { "DELL", "Precision" }
};
foreach (var idx in Enumerable.Range(0, s1.Length))
{
listView1.Items.Add(new ListViewItem(s1[idx]));
}
}
2025.01.18 ListView にチェックボックスを表示する
private void button1_Click(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.CheckBoxes = true;
listView1.Columns.Add("番号", 300, HorizontalAlignment.Left);
foreach (var idx in Enumerable.Range(0, 100))
{
listView1.Items.Add(idx.ToString());
listView1.Items[idx].Checked = true;
}
}
2025.01.18 ListView からアイテムの 2 番目 (インデックス=1) を削除する
private void button1_Click(object sender, EventArgs e)
{
listView1.Items[1].Remove();
}
2025.01.20 ListView のすべてのカラムを削除する
private void button1_Click(object sender, EventArgs e)
{
// カラムとアイテムの両方を削除
listView1.Columns.Clear();
}
2025.01.23 ListView のすべてのアイテムを削除する
private void button1_Click(object sender, EventArgs e)
{
// アイテムのみ削除(カラムは残る)
listView1.Items.Clear();
}
2025.01.21 ListView のサブアイテム foreach で処理する
private void Form1_Load(object sender, EventArgs e)
{
foreach (ListViewItem.ListViewSubItem item in listView1.Items[0].SubItems)
{
listBox1.Items.Add(item.Text);
}
}
2025.01.21 背景色を 1 行おきに変える
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.Columns.Add("番号", 300, HorizontalAlignment.Left);
foreach (var idx in Enumerable.Range(0, 100))
{
listView1.Items.Add(idx.ToString());
if ((idx % 2) == 0)
{
listView1.Items[idx].BackColor = Color.Aqua;
}
}
}
2025.01.21 アイテムをカンマ区切りの文字列に変換する (1)
private void button1_Click(object sender, EventArgs e)
{
string sWork;
foreach (ListViewItem lvi in listView1.Items)
{
sWork = "";
foreach (ListViewItem.ListViewSubItem item in lvi.SubItems)
{
sWork += item.Text;
sWork += ",";
}
sWork = sWork.TrimEnd(',');
listBox1.Items.Add(sWork);
}
}
2025.01.21 アイテムをカンマ区切りの文字列に変換する (3)
delegate IEnumerable<string> Test(ListViewItem.ListViewSubItemCollection subitems);
private void button1_Click(object sender, EventArgs e)
{
Test td = new Test(is2);
foreach (ListViewItem lvi in listView1.Items)
{
string s2 = string.Join(",", td(lvi.SubItems));
listBox1.Items.Add(s2);
}
}
private IEnumerable<string> is2(ListViewItem.ListViewSubItemCollection subitems)
{
foreach (var idx in Enumerable.Range(0, subitems.Count))
{
yield return subitems[idx].Text;
}
}
2025.01.21 アイテムをカンマ区切りの文字列に変換する (2)
private void button1_Click(object sender, EventArgs e)
{
foreach (ListViewItem lvi in listView1.Items)
{
string s2 = string.Join(",", is2(lvi.SubItems));
listBox1.Items.Add(s2);
}
}
private IEnumerable<string> is2(ListViewItem.ListViewSubItemCollection subitems)
{
foreach (var idx in Enumerable.Range(0, subitems.Count))
{
yield return subitems[idx].Text;
}
}
2025.01.23 アイテム追加を高速に行う (2)
private void button1_Click(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.Columns.Add("NUM");
// 描画を一時停止
listView1.BeginUpdate();
foreach (var idx in Enumerable.Range(0, 100000))
{
listView1.Items.Add(idx.ToString());
}
// 描画を更新 (4倍近いパフォーマンス向上)
listView1.EndUpdate();
}
2025.01.24 列幅を列名の内容の応じて調整する
private void button1_Click(object sender, EventArgs e)
{
// リストビューの列幅を列名の内容に応じて調整しています。
// 今回は列名の方がアイテムの内容よりも概ね長いため、すべてのアイテムが表示されています。
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
}
2025.01.24 列幅をアイテムの内容の応じて調整する
private void button1_Click(object sender, EventArgs e)
{
// リストビューの列幅をアイテムの内容に応じて調整しています。このため、列名が一部隠れます。
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
}