
以下、質問内容です。
C#でListViewに項目を表示するPGを作成中なのですが、
ソフト上でのListViewへの入力の場合、↓
ListViewItemのインスタンスを生成後、
Items.Addで0番目の項目(1列目の項目)へ値を追加したあと、
SubItems.Addで1番目以降(2列目以降の項目)へ追加します。
string[] s1 = { ListEnterText0.Text, ListEnterText1.Text, ListEnterText2.Text };
// リスト項目の設定
lvItem = new ListViewItem(s1[0]);
// 項目の追加
lv.Items.Add(lvItem);
// サブ項目の追加
lvItem.SubItems.Add(s1[1]);
lvItem.SubItems.Add(s1[2]);
ただ、DB(Access)から読み取りして表示する場合、↓
ループ処理中に行ごとにインスタンスを生成したあと、
ListViewItemのSubItemsで0番目(1行目)という流れ、つまり、サブ項目として
追加しています。
さらに不明なのは、0行目はSubItems[].Textですが、1行目はSubItems.Addとなります。
// ループ処理で読み取りをしていく
while (Reader.Read())
{
/*
* おそらくだが、
* 簡単に言うと、ループ処理中に各行にてインスタンスを生成し、
* 各列にて値があれば追加していくということ。
* 0番目でもサブ項目として追加する。
*
* ①1行目のインスタンス生成
* ②1行目の0番目からサブ項目としてみて値を追加する
* ③2行目以降も①と同様、インスタンスを生成という流れ
*/
lvItem = new ListViewItem(name); lvItem.SubItems[0].Text = Reader[0].ToString(); lvItem.SubItems.Add(Reader[1].ToString()); lvItem.SubItems.Add(Reader[2].ToString()); lv.Items.Add(lvItem);
}
以上のような、ListViewへの入力時とDBへの表示のときの、それぞれの違いについて
教えてください。
また、
「0行目はSubItems[].Textですが、1行目はSubItems.Add」
についても教えてください。
while内のコメントは、自分なりの理解内容なので、間違っている可能性は
十分あると思われます。
よろしくお願いいたします。