我使用Windows窗体创建了一个网格视图。我还提供了一个上下文条带菜单,其中包含右键单击的复制选项。
但是,右键单击其中一个单元格后,对话框本身会消失,并在左键单击时再次返回。我错过了什么吗?但是,如果我将对话框的“最顶层属性”设置为true,则问题就解决了。但我不想让对话框始终位于顶部。
private void mnuCopy_Click(object sender, EventArgs e)
{
if (row >= 0 && col >= 0)
{
Clipboard.SetData(DataFormats.Text, ErrorDetailsDataGridView.Rows[row].Cells[col].Value.ToString());
}
}
private void ErrorDetailsDataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right && e.ColumnIndex != -1 && e.RowIndex != -1)
{
row = e.RowIndex;
col = e.ColumnIndex;
ContextMenuStrip mnu = new ContextMenuStrip();
ToolStripMenuItem mnuCopy = new ToolStripMenuItem("Copy");
mnuCopy.Click += new EventHandler(this.mnuCopy_Click);
mnu.Items.AddRange(new ToolStripItem[] { mnuCopy });
if (ErrorDetailsDataGridView.CurrentCell != ErrorDetailsDataGridView.Rows[row].Cells[col])
{
ErrorDetailsDataGridView.CurrentCell = ErrorDetailsDataGridView.Rows[row].Cells[col];
}
ErrorDetailsDataGridView.Rows[row].Cells[col].ContextMenuStrip = mnu;
}
}