ListView コントロールがあり、選択した行を非表示にせずに、選択した行の変更を禁止する最も簡単で最良の方法を見つけようとしています。
HideSelection
プロパティがあることは知っていますが、それListView
はまだ有効になっている (ただしフォーカスされていない) 場合にのみ機能します。ListView が無効になっている場合でも、選択範囲を表示できるようにする必要があります。
どうすればこれを実装できますか?
ListView の ownerdraw を作成することもできます。次に、アイテムが選択されているかどうか、または ListView 自体が有効かどうかにかかわらず、アイテムの外観を完全に制御できます。DrawListViewItemEventArgs は、ListView に項目の個々の部分を描画するように依頼する方法を提供するので、関心のあるビットのみを描画する必要があります。テキスト。
2 つのオプションがあり、選択した行の無効な色を変更します。または、他のすべての行を変更して、選択した行を除いて無効になっていることをシミュレートします。最初のオプションは明らかに最も簡単で、2 番目のオプションは明らかに追加の保護が必要です。
私は実際に最初のオプションを以前に実行したことがありますが、それは非常にうまく機能します。後で別の行が選択された場合に備えて、色をデフォルトに戻すことを忘れないでください。
SelectedIndexChanged を実装してこれを行う
private void listViewABC_SelectedIndexChanged(object sender, EventArgs e)
{
listViewABC.SelectedItems.Clear();
}