|
> listview1とlistview2の 既定では "listview1" ではなく "listView1" という名前が付きますが、 今回は元質問に倣い、listview1 という名前として回答します。
> 2つのリストビューがあった場合、 ListView は、複数選択可能(MuliSelect = true)なコントロールですが、 双方の ListView ともに、MuliSelect = true のままという認識でよろしいですか?
> 下記のようにしてみましたが、駄目でした。 冒頭にある 『listview2.Items[idx].Selected = false;』 という行は、常に idx = 0 の状態で実行されることになりますが、 それは意図したコードになっていますか?
> listview1の1行目を選択した場合に > listview2の1行目を同時に選択するようにするには
FocusedItem は変更しなくて良いのですね。 とりあえず、こうかな?
private void Form1_Load(object sender, EventArgs e) { listview2.HideSelection = false; // 選択状態が見えるようにしておく if (listview2.Items.Count > 0) listview2.Items[0].Selected = true; }
private void listview1_SelectedIndexChanged(object sender, EventArgs e) { /* ** 「listview1の1行目以外」を選択した場合は何もしないが、 ** 「listview1の1行目」を選択した場合は「listView2の1行目」を選択する。 */ if (listview1.SelectedIndices.Count > 0 && listview1.SelectedIndices[0] == 0) { /* ** listview2の1行目「だけを」選択したい場合は事前に選択を Clear する必要がある。 ** listview2の1行目「も」選択したい場合は、選択状態を Clear する必要は無い。 */ // listview2.SelectedIndices.Clear(); if (listview2.Items.Count > 0) { listview2.Items[0].Selected = true; } } }
|