詳細リストのListViewアイテムでチェックされた各アイテムを削除しようとしています。私はチェックしながらエントリを削除したくないのですが、エントリを削除するために値を使うボタンに値を渡します。ListViewでItemCheckedのEventHandlerを作成するにはどうすればよいですか?
私は少し遊んでいますが、私はいくつかの問題に出くわしました。まず第一に、これを実行してイベントハンドラを作成することはできません:lvPC.ItemChecked += new EventHandler(CheckedState);
これはエラー:No overload for 'CheckedState' matches delegate 'System.EventHandler'
を引き起こします。
第2に、アイテムのIDを取得するにはどうすればよいですか?これを言うと、追加されたエントリごとにIDがありますが、テーブルビューには追加されません。意味どのIDを削除すべきかをどのように決定するのですか?
private void CheckedState
(object sender, System.Windows.Forms.ItemCheckEventArgs e)
{
ListView.CheckedListViewItemCollection
checkedItems = lvPC.CheckedItems;
string items;
foreach (ListViewItem item in checkedItems)
{
items = item + ", ";
MessageBox.Show(items);
}
if (e.CurrentValue == CheckState.Unchecked)
{
}
else if ((e.CurrentValue == CheckState.Checked))
{
}
}
これは私が3種類のリストビューにデータを挿入しています方法です:
using (OleDbDataReader read = command.ExecuteReader())
{
// Checking if there is any data in the file.
if (read.HasRows)
{
// Reading information from the file.
while (read.Read())
{
if (security.DecryptAES(read.GetString(1),
storedAuth.Password, storedAuth.UserName)
== "PC Password")
{
PC = new ListViewItem("");
PC.SubItems.Add(security.DecryptAES
(read.GetString(5), storedAuth.Password,
storedAuth.UserName));
PC.SubItems.Add(security.DecryptAES
(read.GetString(6), storedAuth.Password,
storedAuth.UserName));
lvPC.Items.Add(PC);
}
else if (security.DecryptAES(read.GetString(1),
storedAuth.Password, storedAuth.UserName)
== "Web Site Password")
{
Web = new ListViewItem("");
Web.SubItems.Add(security.DecryptAES
(read.GetString(2), storedAuth.Password,
storedAuth.UserName));
Web.SubItems.Add(security.DecryptAES
(read.GetString(5), storedAuth.Password,
storedAuth.UserName));
Web.SubItems.Add(security.DecryptAES
(read.GetString(6), storedAuth.Password,
storedAuth.UserName));
lvWeb.Items.Add(Web);
}
else if (security.DecryptAES(read.GetString(1),
storedAuth.Password, storedAuth.UserName)
== "Serial Code")
{
Serial = new ListViewItem("");
Serial.SubItems.Add(security.DecryptAES
(read.GetString(3), storedAuth.Password,
storedAuth.UserName));
Serial.SubItems.Add(security.DecryptAES
(read.GetString(4), storedAuth.Password,
storedAuth.UserName));
lvSerialCode.Items.Add(Serial);
}
}
}
}
...私はそれが最初の答えではないと知っているが、それはあなたの質問の両方に答えるし、助けは「+ =新しいEventHandlerの(CheckedState)lvPC.ItemChecked;」依然としてエラーが発生します。 – HelpNeeder
@HelpNeeder:申し訳ありませんが、元の応答にそれを含めるのを忘れてしまいました。回答が更新されました。 –
ああ!ありがとう!プロパティからEventHandlerを作成することもできます。しかし私はそれをプログラム的にやりたい。 – HelpNeeder