我有标准的datagridview,我有contextmenustrip。我的问题是,当用户单击鼠标右键而不是每一行时,我需要显示此上下文菜单条!仅在我选择的行上。我试过这个:
dataGridView1.Rows[1].ContextMenuStrip = contextMenuStrip1;
但它不起作用。
我有标准的datagridview,我有contextmenustrip。我的问题是,当用户单击鼠标右键而不是每一行时,我需要显示此上下文菜单条!仅在我选择的行上。我试过这个:
dataGridView1.Rows[1].ContextMenuStrip = contextMenuStrip1;
但它不起作用。
如果您的用户右键单击满足某些条件的 DataGridView 列的标题,我觉得您想打开 ContextMenuStrip 。
简而言之:使用 DataGridViewMouseDown
事件并在该事件中检查条件,如果满足条件,请调用Show
ContextMenuStrip 的方法。
您可以参考的代码示例:
private void dataGridView1_MouseDown(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Right) {
var ht = dataGridView1.HitTest(e.X, e.Y);
// Place your condition HERE !!!
// Currently it allow right click on last column only
if (( ht.ColumnIndex == dataGridView1.Columns.Count - 1)
&& (ht.Type == DataGridViewHitTestType.ColumnHeader)) {
// This positions the menu at the mouse's location
contextMenuStrip1.Show(MousePosition);
}
}
}