在DataGridViewCellMouseEventHandler下创建的ContextMenuStrip项包含来自上次单击的数据

时间:2014-06-05 14:28:44

标签: c# datagridview contextmenustrip

试图解决这个问题,并坚持一点。

在Form1.Designer.cs中

我添加了事件:

this.dataGridView1.CellMouseUp += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.DataGridView1_CellMouseUp);

然后我在Form1.cs中使用以下内容:

    private void DataGridView1_CellMouseUp(Object sender, DataGridViewCellMouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            ContextMenuStrip cm = new ContextMenuStrip();
            cm.Items.Add("Data:" + e.RowIndex + e.ColumnIndex);
            ContextMenuStrip = cm;
        }
    }

首先右键单击根本不显示菜单,但接下来右键单击显示来自上一个单击单元格的数据。

2 个答案:

答案 0 :(得分:0)

尝试强制显示菜单条:

if (e.Button == MouseButtons.Right) {
  ContextMenuStrip cm = new ContextMenuStrip();
  cm.Items.Add("Data:" + e.RowIndex + e.ColumnIndex);
  cm.Show(MousePosition);
}

答案 1 :(得分:0)

实际上它现在可以使用以下代码(感谢您的建议):

    if (e.Button == MouseButtons.Right)
    {
        ContextMenuStrip cm = new ContextMenuStrip();
        cm.Items.Add("Data:" + e.RowIndex + e.ColumnIndex);
        cm.Show(MousePosition);
    }