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) { } }
C#.net. WPF.core 技术交流群 群号205082182,欢迎加入,也可以直接点击左侧和下方的"加入QQ群",直接加入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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框架的用法!