如何从AfterLabelEdit事件中获取listviewItem/row ?
本文关键字:listviewItem row 获取 AfterLabelEdit 事件 | 更新日期: 2023-09-27 18:04:38
目标:当标签在我的Listview上更改/编辑时,我正在尝试更新字典
问题:我不知道如何从触发AfterLabelEdit的行中检索行/ListViewItem
我们班正在订阅这个事件
myListView.AfterLabelEdit +=new LabelEditEventHandler(myListView_AfterLabelEdit);
我正在用函数
处理事件 private void myListView_AfterLabelEdit(object sender, LabelEditEventArgs e )
{
MessageBox.Show("You Renamed Me to: "+e.Label.ToString());
if (deviceDictionary.ContainsKey(***)) <--I need to retreive this row that was edited
{
MessageBox.Show("Entry updated");
}
}
AfterLabelEditEvent
事件将LabelEditEventArgs
类型的对象作为参数传递给处理程序方法。该参数命名为e
;您已经将其显示为事件处理程序方法签名的一部分。
这个类的一个属性是Item
,可以通过e
访问,它返回正在编辑的ListViewItem
的从零开始的索引。
一旦你有了这个从零开始的索引,你可以使用它从你的ListView
控件的Items
属性中检索适当的项:
// Retrieve the item that is being edited.
ListViewItem item = myListView.Items[e.Item];
一旦你有了正确的ListViewItem
,你就可以查询它的属性。我认为你所说的"key"是指Name
属性。
private void myListView_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
MessageBox.Show("You Renamed Me to: " + e.Label.ToString());
if (deviceDictionary.ContainsKey(myListView.Items[e.Item].Name))
{
MessageBox.Show("Entry updated");
}
}