ListViewコントロールのすべてのアイテムからフォーカスを削除するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/813826

  •  03-07-2019
  •  | 
  •  

質問

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キーを押すと表示されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top