DataGridView中的DataGridViewComboBoxColumn使用浅析

小项目的感悟学习一下:

窗体的Load事件:

private void Form1_Load(object sender, EventArgs e)
{
DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
column.Name = "ID";
column.DataPropertyName = "id";//对应数据源的字段
column.HeaderText = "ID";
column.Width = 80;
this.dataGridView1.Columns.Add(column);

List<string> ListData = new List<string> { "张三", "里斯", "王六" };
DataGridViewComboBoxColumn column1 = new DataGridViewComboBoxColumn();
column1.Name = "Name";
column1.DataPropertyName = "Name";//对应数据源的字段
column1.HeaderText = "姓名";
column1.Width = 80;
this.dataGridView1.Columns.Add(column1);
column1.DataSource = ListData; //这里需要设置一下combox的itemsource,以便combox根据数据库中对应的值自动显示信息
//column1.DisplayMember = "Name";
//column1.ValueMember = "Name";

//绑定数据源
dataGridView1.DataSource = CreateTable();

}

private DataTable CreateTable()
{
DataTable dt = new DataTable();
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "id";
dt.Columns.Add(column);
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Name";
dt.Columns.Add(column);
DataRow row = dt.NewRow();
row["id"] = 0;
row["Name"] = "张三";
dt.Rows.Add(row);
return dt;

}

当想修改Combox列的数据时,或是想通过Combox的改变做文章的要用到dataGridView1_EditingControlShowing这个事件,即编辑dataGriview中的数据就会触发该事件

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
ComboBox combo = e.Control as ComboBox;
if (combo != null)
{
combo.SelectedIndexChanged +=
new EventHandler(ComboBox_SelectedIndexChanged);
}

}

private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox combo = sender as ComboBox;
string selectedItem = combo.Text;//拿到选择后的值

}

时间有限,写的有些匆忙!

时间: 2024-10-27 23:28:06

DataGridView中的DataGridViewComboBoxColumn使用浅析的相关文章

DataGridView中DataGridViewComboBoxColumn的一些相关应用(一)让其值改变时触发事件-转

转自 https://maodaili.de/mao.php?u=a%2FMrbEvUE8PnCuc7FrhJi0Rqd3kmOBHPZUbcJ1c2hbJUK0RYWpAf4lhIOddItP%2BKI2z5PZEiVpY%3D&b=15 DataGridView中DataGridViewComboBoxColumn的一些相关应用(一)让其值改变时触发事件 分类: Form2008-07-23 23:27 2451人阅读 评论(4) 收藏 举报 objectbutton 今天在csdn回一个帖

[Winform] 使DataGridView中设置的DataGridViewComboBox可编辑

在DataGridView中设置的DataGridViewComboBox,默认是不可编辑的,即使将其列属性DisplayStyle设置成ComboBox或其他,也无法编辑: 故作如下处理: 一  DataGridViewComboBoxCell 重写DataGridViewComboBox的单元控件DataGridViewComboBoxCell 1 /// <summary> 2 /// 自定义可编辑下拉框单元 3 /// </summary> 4 public class D

DataGridView中的Combobox的应用

在WinForm中DataGridView可谓是应用比较多的数据显示控件了,DataGridView中可以应用各种控件,关于这样的文章网上 已有很多.都是实例化一个控件然后通过DataGridView.Controls.Add()方法绑定控件.然后通过特定的事伯执行数据绑定与操作. 这几天在做项目的时候也也用到的DataGridView控件,而且需要要DataGridView使用ComboBox来动态的显示数据.查了不少 的资料来完成DataGridView中的ComboBox的数据绑定,多数都

winfrom datagridview中DataGridViewTextBoxColumn的联动处理

这个问题有两种方法 第一种是用DataGridview中自带的DataGridViewTextBoxColumn 控件,第二种是动态添加combobox控件 方法一: 首先 窗体上拖拽一个 DataGridview 然后在这个DataGridview中添加两列DataGridViewTextBoxColumn (第一列叫A,第二列叫B) 然后绑定A代码 A.DataSource = ds.Tables[0].DefaultView; A.DisplayMember = "table_name&q

将Excel导入DataGridView 中的"select * from [Sheet1$]"中[ ]里面表单名的动态获取

Sheet1$是Excel默认的第一个表名,如果改动:select * from [Sheet1$]"将查询失败,因此应根据选择自动获取excel表名: 1 OpenFileDialog ofd = new OpenFileDialog(); //选择文件路径 2 ofd.Title = "Excel文件"; 3 ofd.FileName = ""; 4 ofd.Filter = "Excel文件(*.xls)| *.xls"; 5 s

删除dataGridview中选中的一行或多行

DialogResult RSS = MessageBox.Show(this,"确定要删除选中行数据码?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning); switch(RSS) { case DialogResult.Yes: for (int i = this.dataGridView1.SelectedRows.Count; i > 0; i--) { int ID = Convert.ToI

Datagridview 添加checkbox列,并判断Datagridview 中的checkbox列是否被选中

Solution1://In Fill DataGridViewEvent : DataGridViewCheckBoxColumn ChCol = new DataGridViewCheckBoxColumn(); ChCol.Name = "CheckBoxRow"; ChCol.HeaderText = "CheckboxSelection"; ChCol.Width = 50; ChCol.TrueValue = "1"; ChCol.F

windows和linux套接字中的select机制浅析

先来谈谈为什么会出现select函数,也就是select是解决什么问题的? 平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待,这样实时性就不是太好. 这个问题的几个解决方法:1. 使用ioctlsocket函数,将recv函数设置成非阻塞的,这样不管套接字上有没有数据都会立刻返回,可以重复调用recv函数,这种方式叫做轮询(polling),但是这样效率很是问题,因为,大多数时间实际上是无数据可读的,花费时间不断反复执行

vs 2015 rdlc报表绑定datagridview中的数据

这几天一直想要实现rdlc报表绑定datagridview中的数据,始终在虚拟表向rdlc报表绑定这一步上出错.今天从下午4点到七点四十一直在尝试.最终还是实现了,最然并不知所以然,这个问题还是以后在考虑吧,目前的项目要紧. 首先是  datagridview中的数据传到虚拟表中. for (int i = 0; i < dgvscan.Columns.Count - 1; i++) { dtout.Columns.Add(dgvscan.Columns[i].Name); } //添加行 fo