【问题标题】:disable right click on datagrid while in edit mode在编辑模式下禁用右键单击数据网格
【发布时间】:2014-03-25 22:32:45
【问题描述】:

我有 ContextMenuStrip,右键单击会显示可供选择的内容。当单元格不处于编辑模式时它工作完美,但是当我单击鼠标右键时它处于编辑模式时它显示窗口菜单(复制,粘贴,删除,全选......)。所以在 datagridview 中,我使用了 CellEndEdit 并编写了以下代码:

if (MouseButton == System.Windows.Forms.MouseButtons.Right)
        {

            MouseEventArgs e3 = new MouseEventArgs(System.Windows.Forms.MouseButtons.Right, 1, Location.X,
                Location.Y, 1);
            DataGridViewCellMouseEventArgs e2 = new DataGridViewCellMouseEventArgs(e.ColumnIndex,
                e.RowIndex, Location.X, Location.Y, e3);
            DataGridValues_CellMouseClick(sender, e2);
        }

MouseButtonMouseButtons。它进入并做所有事情,但我得到了 2 个菜单(我的和窗口)。所以我需要禁用windows右键菜单。有没有办法做到这一点?我认为DataGridValues_CellMouseClick(sender, e2); 中的代码无关紧要,因为它可以正常工作。

【问题讨论】:

    标签: c# winforms datagridview contextmenustrip editmode


    【解决方案1】:

    这样试试

      private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            e.Control.ContextMenuStrip = myContextMenuStrip;
        }
    

    【讨论】:

    • 它对我有用。当右键单击编辑文本框时,它会显示我分配的上下文菜单
    • 我认为它应该可以,但它没有。我会再试一次,也许是因为其他事件。我会重播我的所作所为。
    • 我在一个示例表单上对其进行了测试,它可以工作,但对于我的项目却没有。我仍然将您的答案标记为正确,我会继续尝试。
    • 你需要什么样的改变
    • 我有一个 datagridview 的事件——MouseDown 女巫检测单元格是否处于编辑模式,如果是则结束 EditMode。那是打破程序的想法(我不知道为什么)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2021-09-10
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多