|
■No30038 (紅蓮 さん) に返信
> リストビューの任意の列をクリックした時、SelectedやFocusedをtrueにしてその列を選択状態にしているのですが、
> リストビューの余白(列のない場所)をクリックしたとき、選択状態を解除したいのですが、どうすればよいのでしょうか?
> つたない日本語で申し訳ございません。
> どなたかご教授お願いします。
他コントロールに移動するとき = Leaveイベントに(現在選択されているアイテムの)Selectedプロパティを
全てFalseにするしかないです。
「じゃあフォームは?」ということになりますが、これはまた別な話で…。
ただ、これを利用して無理やり「余白を作る」方法ならあります。
…「可能」というだけでオススメはしませんが…。
当方で実験したのは、
ListViewの裏にListViewより大きいTextBox
(BackColor:Control、BorderStyle:None、Cursor:Default、ReadOnly:True、MultiLine:True)
を設定します。
そして、TextBoxのEnterイベントに「タブ順でListViewの次にフォーカスさせたいコントロール」のFocusメソッドを入れておきます。
これで一見、余白をクリックしたら選択が解除されたように見せることができます。
---------こんな感じ---------
private void listView1_Leave(object sender, EventArgs e)
{
// もし複数選択が可能なときはForかなんかでまわす必要アリ
listView1.SelectedItems[0].Selected = false;
}
// textBox2 = ListViewの裏にいるTextBox
private void textBox2_Enter(object sender, EventArgs e)
{
// 次にフォーカスさせたいところ
textBox1.Focus();
}
|