随笔 - 148  文章 - 1  评论 - 15  阅读 - 30万

C# winfrom Datagridview控件下拉菜单

拖拽一个datagridview放在界面,编辑列把下来菜单那列ColumnType设置成DataGridViewComboBoxColumn

然后在数据一栏的Items可以写下来菜单的内容也可以后台代码写

下面是后台代码实现功能

复制代码
 private void dgUserAuthData_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (dgUserAuthData.CurrentCell.ColumnIndex == 5 && dgUserAuthData.CurrentCell.ColumnIndex != -1)
            {
                ComboBox combo = e.Control as ComboBox;
                combo.SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);
            }
        }

        public void combox_Leave(object sender, EventArgs e)
        {
            ComboBox combox = sender as ComboBox;
            //做完处理,须撤销动态事件
            combox.SelectedIndexChanged -= new EventHandler(ComboBox_SelectedIndexChanged);
        }

        private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                ComboBox combo = (ComboBox)sender;
                combo.Leave += new EventHandler(combox_Leave);
                if (combo.SelectedIndex > -1)
                {
                    string selectedItem = combo.Text;//拿到选择后的值

                    DataGridViewRow dv = dgUserAuthData.CurrentRow;
                    MessageBoxButtons messButton = MessageBoxButtons.YesNo;
                    DialogResult dr = MessageBox.Show("确定要" + selectedItem + "该用户吗?", "确定" + selectedItem, messButton);
                    if (dr == DialogResult.No)
                    {
                        return;
                    }
                    if (userModel.MangerVoucher == "")
                    {
                        MessageBox.Show("您没有管理凭证修改不了");
                        return;
                    }
                    string[] colItems = { "UserPhoneNo", "AccessOperation" };
                    string[] valueItems = new string[2];//添加新增的内容
                    valueItems[0] = userModel.UserPhoneNo; valueItems[1] = selectedItem;
                    //判断有哪些权限,然后只能修改这些权限         
                    SQLiteDbHelper ScabHelper1 = new SQLiteDbHelper(TrhaConst.trhaSCAB);
                    if (ScabHelper1.dbConnection.State == ConnectionState.Open)
                    {
                        IDataReader sqReader = ScabHelper1.UpdateInto("CcUser", colItems, valueItems, "UserPhoneNo", userModel.UserPhoneNo);
                    }
                    if (ScabHelper1.dbConnection.State == ConnectionState.Open) ScabHelper1.CloseSqlConnection();
                    MessageBox.Show("修改成功");
                }
              
            }
            catch (Exception)
            {


            }
        }
复制代码

 

posted on   冰魂雪魄  阅读(2838)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

WPF框架交流群:C#.net. WPF.core 技术交流�      C#WPF技术交流群:C#.net. WPF.core 技术交流�     WPF技术大牛交流群:C#.net. WPF.core 技术交流�
点击右上角即可分享
微信分享提示