none
怎么让ListView仅仅在鼠标右键点击项目区域时才显示弹出式菜单?

    问题

  • 我在用.NET Framework 4.0,有一个ListView控件,View属性是Details。我想让这个ListView仅仅在鼠标右键点击项目区域(就是控件区域除去各个列的列头以及滚动条(如果有的话),但不一定要在某一个项目行的区域内)时显示弹出式菜单。这个应该怎么办?

    如果设置该ListView控件的ContextMenuStrip属性,那么,在鼠标右键点击列头时,也会弹出菜单。这不是我想要的。

    2017年3月21日 12:24

全部回复

  • Hi zdprogrammer,

    感谢你在MDSN论坛发帖。

    你尝试使用ContextMenu 属性吗?

    >>" 如果设置该ListView控件的ContextMenuStrip属性,那么,在鼠标右键点击列头时,也会弹出菜单。这不是我想要的。 "

    针对鼠标点击事件,你可能要设计listview的反应区域大小,把listview列头区域给剔除掉。

    SetClientSizeCore 函数就可以设计控件区域的大小,这是个虚函数,你需要实现它。

    这个方法你要确定被调用在ClientSize 属性被执行以后。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年3月22日 5:45
    版主