我有一个继承自ListView的MyListView类,它覆盖了OnDragDrop() (以及实现拖放所需的其他事件)。当我将两个这样的MyListview放在一个表单上时,我能够从其中一个拖放一个项目并将其放到另一个。这部分起作用了。
现在,我想要覆盖该类的OnDoubleClick(),这样,如果我将其中两个MyListViews放在一个表单上并双击其中一个,该项目将从其中删除并添加到另一个中。但是我不知道怎么做这件事。你能给我一些建议吗?谢谢。
发布于 2012-05-22 23:51:52
我不知道您是否以特定的方式管理项目的集合,但您可以
查找
私有重写OnDoubleClick(...) { ListViewHitTestInfo hit = this.HitTest(e.Location);if (hit.Item != null) { ListViewItem doubleClickedItem = hit.Item;} }
发布于 2012-05-22 23:51:49
通过以下方式将逻辑放入主机窗体中:
除非你是以许多不同的形式来做这件事,否则就不值得把它复杂化。
编辑:如果合理,集中化可以像添加一个做同样事情的方法(伪代码)一样简单。
public void MyForm_OnListViewDoubleClick(object sender, EventArgs e)
{
MoveListItem(firstListView, secondListView);
}
// ...
public static void MoveListItem(ListView source, ListView destination)
{
var listItem = source.SelectedItem;
source.Remove( listItem );
destination.Add( listItem );
}发布于 2012-05-23 02:18:50
这是你标题的答案
protected override void OnDoubleClick(EventArgs e)
{
base.OnDoubleClick(e);
}这是你问题的答案
Using DoubleClick event on a inherited class from ListView这只是链接到你的另一个非常相似的问题。
https://stackoverflow.com/questions/10705460
复制相似问题