首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

datagridview,鼠标在单元格内(单元格处于编辑状态),怎么屏蔽掉系统的右键菜单

2012-12-15 
datagridview,鼠标在单元格内(单元格处于编辑状态),如何屏蔽掉系统的右键菜单在一个窗体里面,加了一个Data

datagridview,鼠标在单元格内(单元格处于编辑状态),如何屏蔽掉系统的右键菜单
在一个窗体里面,加了一个DataGridView..
DataGridView 的ContextMenuStrip属性设置为contextMenuStrip1
,如果DataGridView的单元格不是处于编辑状态时,,点鼠标右键是会弹出contextMenuStrip1的右键菜单。。
但是如果DataGridView的单元格是处于编辑状态时,,点鼠标右键是弹出一个操作系统的右键菜单和contextMenuStrip1,但是
操作系统的右键把contextMenuStrip1的右键菜单给挡住 了。。

我想问的是,,怎么给屏蔽掉操作系统的右键菜单。。
找了好久都没有找到。。
[最优解释]
“操作系统的右键把contextMenuStrip1的右键菜单给挡住 了。。”,
我做了试验,根本没有出现你说的情况,鼠标一旦进入DataGridView里,它会优先处理针对它的所有鼠标事件,根本不会给其他窗体、系统机会的。

我试验是这样做的:

Form上拖一个DataGridView控件,在拖两个contextMenuStrip控件,

form1的ContextMenuStrip属性设置为contextMenuStrip1 ,
dataGridView1的ContextMenuStrip属性设置为contextMenuStrip2;

运行正常。

在同一窗体都没有这种现象,何况在一个系统里!
楼主,你是不是做了什么特殊处理,让系统截取鼠标邮件事件。

你可以先按我的方法测试一下,可能对你找问题有帮助。。。
[其他解释]
LZ你说的这个问题应该不会存在啊 
就像楼上说的一样,
你最好截个图来看看

另外你的是不是在可编辑状态下  右键功能 是无效状态?
[其他解释]
前提是单元格处于编辑状态,确实会被系统的右击菜单给挡住。
如果不是编辑状态,是没有问题的。
楼主,你这个问题解决了吗?
[其他解释]
利用API拦截来处理,也还是不行。
        #region 本程序中需声明的变量
        private const int WM_RBUTTONDOWN = 0x0204;//该变量表示鼠标右键的信息
        private const int WM_GETTEXT = 0x000d;//该变量表示从文本框中获取文本的信息
        private const int WM_CONTEXTMENU = 0x007B;//该变量表示右键菜单的信息
        #endregion

        protected override void WndProc(ref Message m)
        {
            if(m.Msg == WM_RBUTTONDOWN 
[其他解释]
 m.Msg == WM_GETTEXT 

热点排行