当前位置:网站首页>C# 如何在dataGridView里设置两个列comboboxcolumn绑定级联事件的一个二级联动效果
C# 如何在dataGridView里设置两个列comboboxcolumn绑定级联事件的一个二级联动效果
2022-07-06 13:27:00 【ac.char】
当改变了公司后,部门那一列的选项也跟真改变。
这个dataGridView
是绑定的userBindingSource
公司这列的DataGridViewComboBoxColumn
是绑定的CoBindingSource
部门这列的DataGridViewComboBoxColumn
绑定的是deptBindingSource
上面这些都是用vs2005自动生成的代码做的。
然后给dataGridView 添加了个监听。当公司这列的某个单元格的值发生改变时触发一个事件。
事件代码如下:
try
{
Point a = dataGridView1.CurrentCellAddress;
int values = (int)this.dataGridView1.Rows[a.X].Cells[1].Value;
this.deptTableAdapter.FillBy(this.dataSet.dept, values);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
给公司这一列的ComboBox
添加事件
dataGridView.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dataGridView_EditingControlShowing);
private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView.CurrentCell.OwningColumn.Name.Equals("公司") && e.Control is ComboBox)
{
(e.Control as ComboBox).SelectedValueChanged -= new EventHandler(ComboBox_SelectedValueChanged);
(e.Control as ComboBox).SelectedValueChanged += new EventHandler(ComboBox_SelectedValueChanged);
}
}
void ComboBox_SelectedValueChanged(object sender, EventArgs e)
{
if ((sender as ComboBox).SelectedItem != null)
{
dataGridView.CurrentRow.Cells["部门"].Value = ((sender as ComboBox).SelectedItem as DataRowView)["部门"];
}
}
// 构建表格实际数据源
DataTable dt = new DataTable();
dt.Columns.Add("c_ID");
dt.Columns.Add("d_ID");
for (int i = 0; i < 10; i += 2)
dt.Rows.Add(new object[] {
i, i % 4 });
dataGridView1.DataSource = dt;
//先构建第一个联动数据列
DataTable dt1 = new DataTable();
dt1.Columns.Add("c_ID");
dt1.Columns.Add("c_name");
for (int i = 0; i < 10; i++)
dt1.Rows.Add(new object[] {
i, "公司" + i.ToString() });
//建立下拉列
DataGridViewComboBoxColumn cc = new DataGridViewComboBoxColumn();
cc.DataSource = dt1;
cc.HeaderText = "公司名称";
cc.DisplayMember = "c_name";
cc.ValueMember = "c_ID";
cc.DataPropertyName = "c_ID";
dataGridView1.Columns.Add ( cc);
//构建第二个级联动数据列
DataTable dt2 = new DataTable();
dt2.Columns.Add("d_ID");
dt2.Columns.Add("d_name");
for (int i = 0; i < 4; i++)
dt2.Rows.Add(new object[] {
i, "部门" + i.ToString() });
//建立下拉列
DataGridViewComboBoxColumn c2 = new DataGridViewComboBoxColumn();
c2.DataSource = dt2;
c2.HeaderText = "部门";
c2.DisplayMember = "d_name";
c2.ValueMember = "d_ID";
c2.DataPropertyName = "d_ID";
dataGridView1.Columns.Add( c2);
//最后隐藏ID列
dataGridView1.Columns[0].Visible = false;
dataGridView1.Columns[1].Visible = false;
边栏推荐
- It's not my boast. You haven't used this fairy idea plug-in!
- 抖音將推獨立種草App“可頌”,字節忘不掉小紅書?
- @GetMapping、@PostMapping 和 @RequestMapping详细区别附实战代码(全)
- 互联网快讯:吉利正式收购魅族;胰岛素集采在31省全面落地
- 3D face reconstruction: from basic knowledge to recognition / reconstruction methods!
- document. Usage of write () - write text - modify style and position control
- KDD 2022 | realize unified conversational recommendation through knowledge enhanced prompt learning
- [go][转载]vscode配置完go跑个helloworld例子
- R3live notes: image processing section
- OneNote in-depth evaluation: using resources, plug-ins, templates
猜你喜欢
Data Lake (VIII): Iceberg data storage format
Yuan Xiaolin: safety is not only a standard, but also Volvo's unchanging belief and pursuit
袁小林:安全不只是标准,更是沃尔沃不变的信仰和追求
Aiko ai Frontier promotion (7.6)
967- letter combination of telephone number
guava:Collections.unmodifiableXXX创建的collection并不immutable
KDD 2022 | realize unified conversational recommendation through knowledge enhanced prompt learning
Seven original sins of embedded development
[MySQL] basic use of cursor
Why does MySQL index fail? When do I use indexes?
随机推荐
JS learning notes OO create suspicious objects
el-table表格——获取单击的是第几行和第几列 & 表格排序之el-table与sort-change、el-table-column与sort-method & 清除排序-clearSort
Shake Sound poussera l'application indépendante de plantation d'herbe "louable", les octets ne peuvent pas oublier le petit livre rouge?
Nodejs教程之Expressjs一篇文章快速入门
Nodejs tutorial let's create your first expressjs application with typescript
One line by line explanation of the source code of anchor free series network yolox (a total of ten articles, you can change the network at will after reading it, if you won't complain to me)
ICML 2022 | flowformer: task generic linear complexity transformer
js中,字符串和数组互转(一)——字符串转为数组的方法
968 edit distance
跨分片方案 总结
麦趣尔砸了小众奶招牌
ICML 2022 | Flowformer: 任务通用的线性复杂度Transformer
for循环中break与continue的区别——break-完全结束循环 & continue-终止本次循环
Redistemplate common collection instructions opsforzset (VI)
【Redis设计与实现】第一部分 :Redis数据结构和对象 总结
ACdreamoj1110(多重背包)
038. (2.7) less anxiety
El table table - sortable sorting & disordered sorting when decimal and% appear
After working for 5 years, this experience is left when you reach P7. You have helped your friends get 10 offers
Sequoia China, just raised $9billion