c# ListView プログラミング

【C#】【ListBox・ListView】選択した項目(要素)をDeleteキーで削除する方法

ListBoxやListViewに表示されている項目を、キーボードの「Deleteキー」で削除する方法です。

KeyDownのイベントハンドラを記述して実現する方法です。

とても簡単です。


KeyDownのイベントハンドラを記述する

画面に配置したListBoxまたはListViewを選択して、イベントの項目を表示します。

その中から、「KeyDown」をさがします。

ダブルクリックでイベントハンドラを記述します。

【ソースコード】KeyDownのイベントハンドラを記述する

コードを表示して、追加されたKeyDownイベントハンドラに以下のコードを記述します。

一番最初の「if (e.KeyData == Keys.Delete)」で押されたキーの種別を判定しています。

「this.ListView.SelectedItems[0].Index」で選択されている項目のインデックスを取得しています。

今は1行のみ選択として、ゼロ番目の要素を取得するようにしています。

複数行選択の場合は、foreachとかで回しもよいと思います(↓こんな感じで)。

 

先ほどのソースコードに戻って、

「this.ListView.Items.RemoveAt(index)」でインデックスを指定して項目(要素)を削除しています。

そして、削除すると行選択(背景が青色になって選択状態)が解除されるので、それを回避するために削除後に選択状態にしたい行インデックスを計算しています。

以下のようにSelectedにtrueを指定して、指定したインデックスの要素を選択状態にしています。

 

以上で完了です。

\この記事はどうでしたか?/

-c#, ListView, プログラミング

© 2021 ジョブログLiFE