maskedEditColumn datagridview如何使用类?这是我需要的吗?

时间:2015-03-09 06:32:00

标签: character datagridviewcolumn restrict maskedtextbox

我试图在datagridview列中屏蔽用户的输入,我发现这个准备好的类Masked edit column Class在列类型列表中添加了“掩码编辑列”选项。当我选择此列类型时,将在列属性列表中添加一个掩码字段。我尝试通过在“Mask”字段中添加一些掩码元素来完成我的工作,但是当我运行代码时它并没有限制我添加其他字符。我重新打开了'编辑列菜单',我看到'Mask'字段是空的。

我希望文本单元最多只能接受20个字符:1.Capital Letters(英语和希腊语),2。这三个字符(。, - ),3 .Number 0-9

所以作为第一个测试,我只使用这个面具(> ???????????????????)但它没有工作,因为它没有将我的字符转换为大写和当我结束细胞编辑时,我接受了超过20个字符。

我不确定要走的路是Masked Text Box方式。我在vb上做了很多项目,我曾经在文本框的textChanged事件中使用循环来限制字符输入。循环是这样的:(但我现在无法在valueChanged事件中使用它,因为似乎'value'没有selectionStart属性。)

Dim charactersDisallowed As String =“!@#$%^& *()+ = |} {] [:;?/><。,〜”“

        Dim theText As String = txtCopies.Text
        Dim Letter As String
        Dim SelectionIndex As Integer = txtCopies.SelectionStart
        Dim Change As Integer

        For x As Integer = 0 To txtCopies.Text.Length - 1
            Letter = txtCopies.Text.Substring(x, 1)
            If charactersDisallowed.Contains(Letter) Then
                theText = theText.Replace(Letter, String.Empty)
                Change = 1
            End If
        Next

        txtCopies.Text = theText
        txtCopies.Select(SelectionIndex - Change, 0)

所以,

  1. 我需要一个蒙面文本单元格吗?如果是的话(为什么这个面具盒不能保留我进入的面具?我怎样才能用这个课来完成我的工作?)

  2. 我可以选择如何限制列的单元格中的某些字符? (然后我将在cellEndEdit上转换为大写)

1 个答案:

答案 0 :(得分:0)

我最后通过删除cellvaluechanged事件中不需要的字符来实现它,这似乎是在我结束单元格编辑时引发的,例如点击"输入"。