zoukankan      html  css  js  c++  java
  • C# DataGridView,右键单击RowHeader时显示右键菜单怎么做?

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                if( e.ColumnIndex==-1)
                {
                    MessageBox.Show("这里是行头");
                }
            }
     
        private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
            {
                if(e.Button==MouseButtons.Right)
                {
                    //加入显示右键弹出菜单
                }
            }
     
    可以肯定,楼上的代码都未经测试。注意:楼主要的是在行头,就是标题行上点击右键,出现快捷菜单。
    而且,CellClick 是不响应右键的,所以,只有在 CellMouseClick 事件中才能响应右键.(RowHeaderMouseClick 也有响应,但是不知道为什么,我的 VS2005 没有反应,所以不推荐使用)
    private void dgv_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
            {
                // 判断是否右键点击
                if (e.Button == MouseButtons.Right)
                {
                    // 得到点击所在的行和列信息。相关函数查 MSDN
                    DataGridView.HitTestInfo hitinfo = dgv_verify.HitTest(e.X, e.Y);
                    // 如果 RowIndex < 0,就是标题行了。 
                    if (hitinfo.RowIndex < 0)
                    {
                        // 如果你只要指定的列显示菜单,则加入对 hitinfo.ColumnIndex 的判断
                        contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
                    }
                }
            }

    ===============================================================
    以上代码经过测试,在 VS2005 和 VS2008 下运行正常。
    有什么问题,再问我吧。
    来自:http://bbs.csdn.net/topics/370259768
  • 相关阅读:
    SQL2008还原数据库差异备份
    关于串行接口
    SQL Server 2000删除表中的重复记录
    在SQL SERVER 2005创建用户定义函数语法
    C#中的字段与属性
    对SQL数据表和数据库进行迭代操作
    第4章 最简单的C程序设计——顺序程序设计
    走进SQL Server 2005:备份与恢复功能
    ASP.NET中上传下载文件
    Sql常见面试题
  • 原文地址:https://www.cnblogs.com/gisoracle/p/4371349.html
Copyright © 2011-2022 走看看