如何防止用户将数据输入DataGridViewComboBoxCells?

时间:2010-12-20 15:35:16

标签: .net vb.net datagridviewcomboboxcell

我有一个使用许多DataGridView控件的项目。大多数单元格都是DataGridViewTextBoxCell的说服力。我声明我的控件是这样的:

Dim MyCell as DataGridViewCell

稍后我指定它们是DataGridViewTextBoxControls还是DataGridViewComboBoxCells,如下所示:

MyCell = New DataGridViewTextBoxCell   ...or...
MyCell = New DataGridViewComboBoxCell

我的代码中没有任何地方要求用户能够在组合框中输入自己的值。也就是说,它们要么是硬编码的,要么是从应用程序中的其他数据中收集的值。

目前,用户可以突出显示如上所示定义的组合框控件,并开始键入他们喜欢的任何内容。例如,我有一个组合框,为用户提供1到9之间的整数选择。我可以突出显示组合框单元格并输入“Hello,World!”如果我愿意的话。

禁用此功能需要什么?我确定有一处房产,但我还没找到。我已经在互联网上搜索过,并且发现只能将用户输入的值添加到列表和数据绑定教程流中。

提前谢谢! ç

1 个答案:

答案 0 :(得分:3)

检查here

修改

我可能应该提供更多的信息,但我很累,感觉有点不舒服,所以我觉得自己很懒...但不,你不得不毁了我的懒惰,并强迫我输入更多。 (LOL只是开玩笑)。

基本上你在组合框中看到的comboxbox实际上是一个组合框控件(Tired = Bad Engrish)。

从我记忆中,您应该能够通过使用datagridview的EditingControlShowing事件来获取单元格中使用的控件。在那里,你只需设置下拉式。

像:

Private Sub datagridview_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs)

    Dim c As ComboBox = e.Control

    If Not c Is Nothing Then

        c.DropDownStyle = ComboBoxStyle.DropDownList

    End If

End Sub