【问题标题】:Can I make a contextMenuStrip for columns only not headers in a dataGridView?我可以为dataGridView中的列而不是标题创建contextMenuStrip吗?
【发布时间】:2016-05-02 02:57:36
【问题描述】:

我有一个附加到 dataGridView 的 contextMenuStrip,当我右键单击 daaGridView 上的任何位置(包括标题和没有任何数据行的空白区域)时,会出现 contextMenuStrip。

我希望仅在右键单击数据行时出现 contextMenuStrip。我该怎么做?

感谢您的帮助。

【问题讨论】:

    标签: c# datagridview contextmenu


    【解决方案1】:

    您需要使用 datagridview 的 HitTest 方法来确定是否单击了任何数据行。在网格的 Mousedown 事件中,使用以下代码:

    var info = dataGrid1.HitTest(e.X,e.Y);
    if(info.RowIndex!=-1)// datarow is clicked.
        contextMenu.Show(dataGrid1, e.Location);
    

    对于列标题或背景区​​域,info.RowIndex 将为 -1。也不要在设计时预设 dataGrid1.ContextMenu 属性(保持未分配)。这样你的dataGrid1就不能默认右键显示contextMenu了。

    【讨论】:

    • @Bob 如果您认为我的回答不能解决您的问题,请告诉我,但如果确实如此,请将其标记为已接受。
    猜你喜欢
    • 2018-10-20
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多