打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DataGridView中的Combobox的应用
userphoto

2010.12.07

关注

DataGridView中的Combobox的应用

     在WinForm中DataGridView可谓是应用比较多的数据显示控件了,DataGridView中可以应用各种控件,关于这样的文章网上

已有很多。都是实例化一个控件然后通过DataGridView.Controls.Add()方法绑定控件。然后通过特定的事伯执行数据绑定与操作。

    这几天在做项目的时候也也用到的DataGridView控件,而且需要要DataGridView使用ComboBox来动态的显示数据。查了不少

的资料来完成DataGridView中的ComboBox的数据绑定,多数都是通过严设置在WinForm中的窗体InitializeComponent()中来设

置ComboBox对象的DataSource、DisplayMember、ValueMember的值来实现数据绑定,可是这样并不能实现每行不同的数据进

行绑定。在查看MSDN的时候我发现一个对象是DataGridViewComboBoxCell 。MSDN上这样说的:

DataGridViewComboBoxCell 类是用于显示组合框控件(即组合了列表选择字段的编辑字段)的 DataGridViewCell 的专用类型。

当前选定的 DataGridViewComboBoxCell 承载一个 DataGridViewComboBoxEditingControl,用户可在其中更改单元格的值

(假设单元格的 ReadOnly 属性设置为 false)。 与 ComboBox 控件不同,DataGridViewComboBoxCell 没有 SelectedIndex

和 SelectedValue 属性,而是通过从下拉列表中选择值来设置单元格的 Value 属性。

所以我这样实现的:

在DataGridView进行数据绑定时通过for来循环添加行(通过DataSource来实现的时候下的的功能无法完成),同时

DataGridViewComboBoxColumn列中填充Null。 然后在DataGridView的RowsAdded事件中添加ComboBox的数据绑定代码。

 

1
       private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
2
        
{
3
            
4
            DataGridViewComboBoxCell DgvCell 
= this.dataGridView1.Rows[e.RowIndex].Cells[1as DataGridViewComboBoxCell;
5
            DgvCell.DataSource 
= DataSource;
6
            DgvCell.DisplayMember 
= "MeasureName";
7
            DgvCell.ValueMember 
= "MeasureId";
8
         }

这样就可以完成数据绑定了。我们就可以在DataGridVie一行的后面添加一个按钮列,然后选择DataGridView的CellClick事件中编写代码。

我们可以通过

    

 

string selectValue =(string)(this.dataGridView1.Rows[e.RowIndex].Cells[1as DataGridViewComboBoxCell).Value;//取得所选值的key即绑定ValueMember的值。
MessageBox.Show("" + selectValue.ToString() + "");

       注意的地方就是如果绑定的的是泛型集合,那么DisplayMember与ValueMember的值必须是属性(property)

不可以是类的字段(Filed)。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
WinForm控件复杂数据绑定常用数据源(如:Dictionary)(对Combobox,DataGridView等控件DataSource赋值的多种方法)
DataGridView内包含ComboBox列 实现选定ComboBox的项数据的联动.
DataGridView控件 动态添加新行
加密公共类common
【验证】C# dataSource 的记忆功能
(转)使用DataGridView控件常见问题解答 - 边写边唱 - 博客园
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服