私はそこにいくつかの項目を持つListViewを持っています。 ListViewがフォーカスを失うと、最後に選択されたListViewItemはまだ灰色の背景で「選択」されます。
ListView.FocusLostでこれを達成したいと思います。選択がなくなり、ListView.SelectedIndexChangedイベントが発生します。
アイデアListViewでアイテムを選択解除するにはどうすればよいですか?
.NET CF 3.5を使用しています。
私はそこにいくつかの項目を持つListViewを持っています。 ListViewがフォーカスを失うと、最後に選択されたListViewItemはまだ灰色の背景で「選択」されます。
ListView.FocusLostでこれを達成したいと思います。選択がなくなり、ListView.SelectedIndexChangedイベントが発生します。
アイデアListViewでアイテムを選択解除するにはどうすればよいですか?
.NET CF 3.5を使用しています。
親フォーム/コントロールからListViewにアクセスしているとします。
this.myListView.LostFocus += (s, e) => this.myListView.SelectedIndices.Clear();
は、[OK]を、あなたのケースではので、あなたがそのデリゲートを置き換えます:あなたは、フォームの/コントロールのコンストラクタ/ロードイベントにコードのこの部分を追加することができます
if (this.myListView.SelectedIndices.Count > 0)
for (int i = 0; i < this.myListView.SelectedIndices.Count; i++)
{
this.myListView.Items[this.myListView.SelectedIndices[i]].Selected = false;
}
ますコードをより良い形式、btwにすることができます。
これは簡単です。
this.myListView.SelectedIndex = -1;
this.myListView.Update();
SelectedIndexプロパティがありませんリストビューの場合 –
これはWindows 10のユニバーサルアプリケーションで動作します。 +1 – JBernardo
これにアプローチする別の効果的な方法は、次のようになります。
foreach (ListViewItem i in myListView.SelectedItems)
{
i.Selected = false;
}
myListView.SelectedItems.Clear();
私はこれが遅れている知っているが、場合には他の誰かが、私は解決策に追加したいソリューションを必要としていました。
フォーカスを外されたアイテムが避けられるように、Focusedプロパティをfalseに設定する必要があります。
for (int i = 0; i < this.myListView.SelectedIndices.Count; i++)
{
this.myListView.Items[this.myListView.SelectedIndices[i]].Selected = false;
this.myListView.Items[this.myListView.SelectedIndices[i]].Focused = false;
}
if (listView1.SelectedItems.Count > 0)
for (int i = 0; i < listView1.SelectedItems.Count; i++)
{
listView1.SelectedItems[i].Selected = false;
}
質問はすでに5年前に答えられました。そして、あなたのソリューションは問題を解決しません - あなたはリストの最初の項目を選択解除しています。 –
あなたはむしろItemTemplateによりEditItemTemplateを、使用している場合は、なぜListView1.SelectedIndex =を把握しようとしているかもしれ-1;まだ動いていません。これは、ListView1.EditIndex = -1を使用する必要があるためです。
編集されました。あなたの文章が見つかりました。 – Vladimir