【发布时间】:2026-02-13 23:25:06
【问题描述】:
我得到了这部分代码,我打开 contextMenuStrip 以响应鼠标右键单击(在 dataGridView 表上)。
问题是,我第一次右键单击 - 菜单没有弹出。第二次弹出,从那以后一切正常..
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
DataGridView.HitTestInfo info = dataGridView1.HitTest(e.X, e.Y); //get info
int currentMouseOverRow = dataGridView1.HitTest(e.X, e.Y).RowIndex;
if (e.Button == MouseButtons.Right) //MouseButton right: Open context menu strip.
{
dataGridView1.Rows[currentMouseOverRow].Selected = true; //Select the row
ContextMenuStrip Menu = new ContextMenuStrip();
ToolStripMenuItem MenuOpenPO = new ToolStripMenuItem("Delete it");
MenuOpenPO.Click += new EventHandler(MenuOpenPO_Click);
Menu.Items.AddRange(new ToolStripItem[] { MenuOpenPO });
dataGridView1.ContextMenuStrip = Menu; //Assign to dataGridView1
}
}
有什么帮助吗? :) 我使用 Visual Studio 2012。
【问题讨论】:
标签: c# datagridview mouseevent contextmenustrip