是否有可能以编程方式触发 ListView 中的项目操作,例如当您双击它时?
Is there a possibility to programmatically trigger item action in ListView, like when you dobuleclick on it?
我到处搜索,但找不到答案。我需要启动一个 ListView 项目操作,因此它会引发 ItemActivate 事件。目前,只能使用 ENTER 键或双击...我想知道我是否可以通过编程方式执行此操作,例如:
listView.Items[int].Activate();
这当然行不通,因为那里没有实现 Activate() 函数。例如,我找不到如何以编程方式触发按钮,但在您键入时出现的上下文菜单中它就在那里:
buttonX.PerformClick();
...它会触发 button_click 事件。我想知道 ListView 控件中是否有类似的东西用于触发其中的项目?我希望它以编程方式引发此事件,而不是通过鼠标双击或键盘上的 Enter 键...
private void myListView_ItemActivate(object sender, EventArgs e)
{
MessageBox.Show("hello");
}
根据the documentation,ListView中的EventHandler应该是public。因此,您可以通过以下方式引发事件:
myListView.ItemActivate(myListView, EventArgs.Empty);
这样所有订阅此活动的人都会收到通知。
另一种方式当然是直接调用你的方法:
myListView_ItemActivate(this, EventArgs.Empty);
但这并没有真正归类为 "raising the event",因为您实际上并没有引发事件。你只是调用一个方法。
我到处搜索,但找不到答案。我需要启动一个 ListView 项目操作,因此它会引发 ItemActivate 事件。目前,只能使用 ENTER 键或双击...我想知道我是否可以通过编程方式执行此操作,例如:
listView.Items[int].Activate();
这当然行不通,因为那里没有实现 Activate() 函数。例如,我找不到如何以编程方式触发按钮,但在您键入时出现的上下文菜单中它就在那里:
buttonX.PerformClick();
...它会触发 button_click 事件。我想知道 ListView 控件中是否有类似的东西用于触发其中的项目?我希望它以编程方式引发此事件,而不是通过鼠标双击或键盘上的 Enter 键...
private void myListView_ItemActivate(object sender, EventArgs e)
{
MessageBox.Show("hello");
}
根据the documentation,ListView中的EventHandler应该是public。因此,您可以通过以下方式引发事件:
myListView.ItemActivate(myListView, EventArgs.Empty);
这样所有订阅此活动的人都会收到通知。
另一种方式当然是直接调用你的方法:
myListView_ItemActivate(this, EventArgs.Empty);
但这并没有真正归类为 "raising the event",因为您实际上并没有引发事件。你只是调用一个方法。