首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写列表视图上的OnDoubleClick()事件

重写列表视图上的OnDoubleClick()事件
EN

Stack Overflow用户
提问于 2012-05-22 23:45:42
回答 3查看 1.1K关注 0票数 0

我有一个继承自ListView的MyListView类,它覆盖了OnDragDrop() (以及实现拖放所需的其他事件)。当我将两个这样的MyListview放在一个表单上时,我能够从其中一个拖放一个项目并将其放到另一个。这部分起作用了。

现在,我想要覆盖该类的OnDoubleClick(),这样,如果我将其中两个MyListViews放在一个表单上并双击其中一个,该项目将从其中删除并添加到另一个中。但是我不知道怎么做这件事。你能给我一些建议吗?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-22 23:51:52

我不知道您是否以特定的方式管理项目的集合,但您可以

查找

  • ,或者在处理之后双击look SelectedItems
  • ,或者您可以使用ListViewHitTestInfo 类添加如下代码:

私有重写OnDoubleClick(...) { ListViewHitTestInfo hit = this.HitTest(e.Location);if (hit.Item != null) { ListViewItem doubleClickedItem = hit.Item;} }

票数 1
EN

Stack Overflow用户

发布于 2012-05-22 23:51:49

通过以下方式将逻辑放入主机窗体中:

  • 句柄双击first ListView
  • Remove from first ListView
  • Add to second ListView

除非你是以许多不同的形式来做这件事,否则就不值得把它复杂化。

编辑:如果合理,集中化可以像添加一个做同样事情的方法(伪代码)一样简单。

代码语言:javascript
复制
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 );
}
票数 1
EN

Stack Overflow用户

发布于 2012-05-23 02:18:50

这是你标题的答案

代码语言:javascript
复制
protected override void OnDoubleClick(EventArgs e)
{
    base.OnDoubleClick(e);
}

这是你问题的答案

Using DoubleClick event on a inherited class from ListView这只是链接到你的另一个非常相似的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10705460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档