我是否可以仅为dataGridView中的列创建contextMenuStrip?

时间:2016-05-01 18:22:45

标签: c# datagridview contextmenu

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

我想在我右键单击数据行时显示contextMenuStrip。我怎么能这样做?

感谢您的帮助。

1 个答案:

答案 0 :(得分: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。