社区
C语言
帖子详情
C# Winform中DataGridView中DataGridViewComboBoxColumn如何绑定数据源
yannis_lin
2013-03-02 02:48:48
DataGridView中DataGridViewComboBoxColumn绑定数据源后 当我改变DataGridViewComboBoxColumn的值时 DataGridView中后面几列的值也随之改变
...全文
348
1
打赏
收藏
C# Winform中DataGridView中DataGridViewComboBoxColumn如何绑定数据源
DataGridView中DataGridViewComboBoxColumn绑定数据源后 当我改变DataGridViewComboBoxColumn的值时 DataGridView中后面几列的值也随之改变
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liumingqiu32
2013-05-15
打赏
举报
回复
usingSystem;usingSystem.Data;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceMyNameSpace { publicpartialclassMainForm : Form { //定义下拉列表框 privateComboBox cmb_Temp =newComboBox(); publicMainForm() { InitializeComponent(); } /// ///绑定性别下拉列表框 /// privatevoidBindSex() { DataTable dtSex =newDataTable(); dtSex.Columns.Add("Value"); dtSex.Columns.Add("Name"); DataRow drSex; drSex =dtSex.NewRow(); drSex[0] ="1" drSex[1] ="男" dtSex.Rows.Add(drSex); drSex =dtSex.NewRow(); drSex[0] ="0" drSex[1] ="女" dtSex.Rows.Add(drSex); cmb_Temp.ValueMember ="Value" cmb_Temp.DisplayMember ="Name" cmb_Temp.DataSource =dtSex; cmb_Temp.DropDownStyle =ComboBoxStyle.DropDownList; } /// ///为避免连接数据库,这里手工构造数据表,实际应用中应从数据库中获取 /// privatevoidBindData() { DataTable dtData =newDataTable(); dtData.Columns.Add("ID"); dtData.Columns.Add("Name"); dtData.Columns.Add("Sex"); DataRow drData; drData =dtData.NewRow(); drData[0] =1 drData[1] ="张三" drData[2] ="1" dtData.Rows.Add(drData); drData =dtData.NewRow(); drData[0] =2 drData[1] ="李四" drData[2] ="1" dtData.Rows.Add(drData); drData =dtData.NewRow(); drData[0] =3 drData[1] ="王五" drData[2] ="1" dtData.Rows.Add(drData); drData =dtData.NewRow(); drData[0] =4 drData[1] ="小芳" drData[2] ="0" dtData.Rows.Add(drData); drData =dtData.NewRow(); drData[0] =5 drData[1] ="小娟" drData[2] ="0" dtData.Rows.Add(drData); drData =dtData.NewRow(); drData[0] =6 drData[1] ="赵六" drData[2] ="1" dtData.Rows.Add(drData); this.dgv_User.DataSource =dtData; } privatevoidMainForm_Load(objectsender, EventArgs e) { // 绑定性别下拉列表框 BindSex(); //绑定数据表 BindData(); // 设置下拉列表框不可见 cmb_Temp.Visible = false; // 添加下拉列表框事件 cmb_Temp.SelectedIndexChanged += new EventHandler(cmb_Temp_SelectedIndexChanged); // 将下拉列表框加入到DataGridView控件中 this.dgv_User.Controls.Add(cmb_Temp); } // 当用户移动到性别这一列时单元格显示下拉列表框 private void dgv_User_CurrentCellChanged(object sender, EventArgs e) { try { if (this.dgv_User.CurrentCell.ColumnIndex == 2) { Rectangle rect = dgv_User.GetCellDisplayRectangle(dgv_User.CurrentCell.ColumnIndex, dgv_User.CurrentCell.RowIndex, false); string sexValue = dgv_User.CurrentCell.Value.ToString(); if (sexValue == "1") { cmb_Temp.Text = "男"; } else { cmb_Temp.Text = "女"; } cmb_Temp.Left = rect.Left; cmb_Temp.Top = rect.Top; cmb_Temp.Width = rect.Width; cmb_Temp.Height = rect.Height; cmb_Temp.Visible = true; } else { cmb_Temp.Visible = false; } } catch { } } // 当用户选择下拉列表框时改变DataGridView单元格的内容 private void cmb_Temp_SelectedIndexChanged(object sender, EventArgs e) { if (((ComboBox)sender).Text == "男") { dgv_User.CurrentCell.Value = "男"; dgv_User.CurrentCell.Tag = "1"; } else { dgv_User.CurrentCell.Value = "女"; dgv_User.CurrentCell.Tag = "0"; } } // 滚动DataGridView时将下拉列表框设为不可见 private void dgv_User_Scroll(object sender, ScrollEventArgs e) { this.cmb_Temp.Visible = false; } // 改变DataGridView列宽时将下拉列表框设为不可见 private void dgv_User_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) { this.cmb_Temp.Visible = false; } // 绑定数据表后将性别列中的每一单元格的Value和Tag属性(Tag为值文本,Value为显示文本) private void dgv_User_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { for (int i = 0; i < this.dgv_User.Rows.Count; i++) { if (dgv_User.Rows[i].Cells[2].Value != null && dgv_User.Rows[i].Cells[2].ColumnIndex == 2) { dgv_User.Rows[i].Cells[2].Tag = dgv_User.Rows[i].Cells[2].Value.ToString(); if (dgv_User.Rows[i].Cells[2].Value.ToString() == "1") { dgv_User.Rows[i].Cells[2].Value = "男"; } else if (dgv_User.Rows[i].Cells[2].Value.ToString() == "0") { dgv_User.Rows[i].Cells[2].Value = "女"; } } } } } }
C#
WinForm
(
DataGridView
ComboBox
Column
绑定
)自己写的,最简单实例
在这个最简单的实例
中
,我们将深入探讨如何在`
DataGridView
`
中
绑定
`
DataGridView
ComboBox
Column
`,以及实现这一功能的关键步骤。 1. **创建
WinForm
项目** 首先,你需要在Visual Studio
中
创建一个新的
C#
Windows ...
C#
winform
datagridview
里的下拉框
中
既可以从下拉框里选择数据,也可以让客户自己手动往里输入数据,
// 检查用户输入是否已存在于
数据源
中
,如果不是,则添加到
数据源
if (!
comboBox
Column
.DataSource.Contains(e.Control.Text)) {
comboBox
Column
.DataSource =
comboBox
Column
.DataSource.Concat(new[] { e....
实现
datagridview
与数据库的
绑定
并添加combox
column
和checkbox
column
DataGridView
ComboBox
Column
comboBox
Column
= new
DataGridView
ComboBox
Column
();
comboBox
Column
.DataSource = anotherDataTable;
comboBox
Column
.DisplayMember = "DisplayField";
comboBox
Column
....
c#
winform
DataGridView
高级特性
- **数据
绑定
模式**:包括非
绑定
模式(手动添加数据)、
绑定
模式(与
数据源
绑定
)和虚拟模式(只在需要时加载数据)。 5. **特性综览** - **样式**:使用
DataGridView
CellStyle 类设置单元格样式,实现风格继承...
datagridview
使用
combobox
进行二级联动
要将`
ComboBox
`嵌入到`
DataGridView
`的某一列,我们需要创建一个自定义的`
DataGridView
TextBox
Column
`,并指定其`DataPropertyName`属性为
数据源
中
的字段名。 接着,我们创建两个`
ComboBox
`控件,分别代表一级分类...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章