如何能够在Datagridview中ComboBox类型的单元格中输入数据?
2010-05-15 09:32
288 查看
看了很多文章,大部分都是重写ComboBoxCell,下面是一个不错的方法,在园子里看到的贴子,有兴趣的朋友可以找一下原帖.
默认情况下,DataGridViewComboBoxCell不接受用户的输入值。但有时确实有向ComboxBox输入数据的需要。实现这个功能,你需要做两件事。一是将ComboBox编辑控件的DropDownStyle属性设置为DropDown,使用户可以进行输入(否则只能进行选择);二是确保用户输入的值能够添加到ComboBox的Items集合。这是因为ComboBoxCell的值必须在Items集合中,否则会触发DataError事件,而适合添加新值到Items集合的地方是CellValidating事件处理函数:
代码
默认情况下,DataGridViewComboBoxCell不接受用户的输入值。但有时确实有向ComboxBox输入数据的需要。实现这个功能,你需要做两件事。一是将ComboBox编辑控件的DropDownStyle属性设置为DropDown,使用户可以进行输入(否则只能进行选择);二是确保用户输入的值能够添加到ComboBox的Items集合。这是因为ComboBoxCell的值必须在Items集合中,否则会触发DataError事件,而适合添加新值到Items集合的地方是CellValidating事件处理函数:
代码
Private Sub dataGridView1_CellValidating(ByVal sender As Object, ByVal e As DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating If e.ColumnIndex = Column1.DisplayIndex Then 'Column1是Combobox列的列名 If Not Me.Column1.Items.Contains(e.FormattedValue) Then Me.Column1.Items.Add(e.FormattedValue) End If DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = e.FormattedValue '这行是我后来加的,因为好像进行上面的操作后单格的值就会丢失.期待更好的办法. End If End Sub Private Sub dataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing If Me.DataGridView1.CurrentCellAddress.X = Column1.DisplayIndex Then Dim cb As ComboBox = TryCast(e.Control, ComboBox) If cb IsNot Nothing Then cb.DropDownStyle = ComboBoxStyle.DropDown End If End If End Sub
相关文章推荐
- .net2005 datagridview 如何获取值改变的单元格的集合??(小弟没有为datagridview添加数据源,也就是说单元格中的数据是手工录入的)
- C++学习笔记一:cout如何判断输入数据类型
- winform中dataGridView单元格根据值设置新值,彻底解决绑定后数据类型转换的困难
- DataGridView中对各种类型的单元格控件的事件处理(DataGridViewCheckBoxCell、DataGridViewComboBoxCell等的选定、事件触发)
- 如何设置excel单元格的数据类型
- 了解Hadoop数据类型,输入输出格式及用户如何自定义。
- C# 文本输入限制类型,datagridview单元格输入验证
- Hadoop(十):简单了解Hadoop数据类型,输入输出格式及用户如何自定义。
- 关于datagridview单元格不切换焦点无法获得新输入数据的问题解决方法
- winform datagridview 数据类型为数值类型时,如何去掉默认中“0”
- 如何控制excel单元格的数据类型
- KeyValuePair<byte, string> 类型的数据如何绑定到ComboBox控件上
- date类型只取时间前台输入的数据如何在数据库中修改增加
- 简单谈谈如何在DataGridView控件中验证数据输入的正确性,winform
- 用DataGridView如何显示强数据类型
- DataGridView中Combobox的数据类型匹配
- (原创)如何让web页面产生服务器数据返回后仍然能够保留到用户输入的位置!
- DataGridView中对各种类型的单元格控件的事件处理(DataGridViewCheckBoxCell、DataGridViewComboBoxCell等的选定、事件触发)
- C#——小编浅谈如何在DataGridView控件中验证数据输入
- [Python]Python/PHP如何查询sql server中NTEXT类型数据