ListViewコントロールのすべてのアイテムからフォーカスを削除するにはどうすればよいですか?
質問
ListView
コントロールでは、そのコントロール内のいくつかの Item
にフォーカスがあります。つまり、コントロールはフォーカスされているものの独自の内部概念を維持します。 FocusedItem
プロパティを使用して取得します。
フォーカスを当てるアイテムはいいえします。つまり、 FocusedItem
プロパティを null
に設定する必要があります。これをどのように達成できるか考えていますか?
解決
バヌアンの答えを拡大するには:
if (listView1.FocusedItem != null)
{
listView1.FocusedItem.Focused = false;
}
何かを選択すると、アイテムの選択を解除することもできます。そのため、おそらくこれも同様に行う必要があります。
if (listView1.SelectedItems.Count != 0)
{
listView1.SelectedItems[0].Selected = false;
}
他のヒント
そうだと思う
listView1.FocusedItem.Focused=false;
listView1.FocusedItemがnullでないことを確認してください。
(エキスパンドの brianpeiris に感謝)
リストビューコントロールに新しいアイテムが追加されると、アイテムの周りに点線のボックスが描画されます。この視覚的なキューが望ましくない状況がいくつかあります。選択したアイテムを強調表示するだけで十分です。リストビューコントロールに新しいアイテムを追加するときに、点線のボックスが表示されないようにする1つの方法を次に示します。
ListViewItem item = new ListViewItem();
myListView.Items.Add(item);
myListView.SelectedItems.Clear();
myListView.FocusedItem = null;
myListView.Refresh();
更新:
私の解決策は問題を解決しません。 「焦点を外す」簡単な方法があればいいのにコントロールですが、数時間グーグルで探した後、何も見つかりませんでした。私も、これらの点線が表示されないようにする方法を探していました。ボタンをクリックしてリストビューアイテムを追加しても問題ありません。これは、ボタンにタブで移動してから(入力フォーカスを受け取って)Enterキーを押すと表示されます。
所属していません StackOverflow