以编程方式将单击消息发送到ListView以选择/取消选择项目

时间:2017-08-04 18:03:11

标签: c# .net winforms listview

我有一个ListView,我在其上显示其他控件。当您单击其中一个控件并执行操作时,我可以捕获。我想要的是也向它下面的ListView发送点击通知,这样就好像点击了ListView一样。因此,它会选择/取消选择ListView中发生点击的项目。我想向ListView发送一条点击消息而不是手动选择/取消选择该项目,因为我不想尝试弄清楚它是否是一个多选列表,按下了哪些键,什么非点击的项目需要保持选中或取消选中,...理想情况下,我会向ListView发送点击通知,它会采取所有适当的操作,就像点击它一样。

我一直在调用来自SendMessage的{​​{1}} - user32.dllWM_NOTIFYOCM_NOTIFY结构作为NMITEMACTIVATE。我似乎无法让它工作。我也玩过lParam电话而没有运气。

我可以从列表视图顶部的控件中成功捕获click事件,获取光标位置,将其转​​换为下面OnNotifyMessage中的项目/子项目,...我只是可以“似乎以编程方式发送需要发送到ListView的任何通知,因此需要采取适当的措施。

编辑:

下面链接中的可能解决方案将允许点击通过控件传递到它下面的ListView,但是您必须为所有控件创建自定义类,否则您将无法处理顶部控件中的任何点击事件。

1 个答案:

答案 0 :(得分:2)

您需要创建一个类,该类扩展驻留在ListView上的控件并覆盖其中一个事件。这是一个非常类似的问题,你的问题可以帮助你。 https://stackoverflow.com/a/8635626/3508142