maskedEditColumn datagridview, как использовать класс? это то, что мне нужно?

Я пытаюсь замаскировать пользовательский ввод в столбце datagridview и нашел этот готовый класс Masked edit column Class, который добавляет параметр «маскировать столбец редактирования» в список типов столбцов. Когда я выбираю этот тип столбца, поле маски добавляется в список свойств столбца. Я попытался выполнить свою работу, добавив некоторые элементы маски в это поле «Маска», но когда я запускал код, это не ограничивало меня от добавления других символов. Я снова открыл «меню редактирования столбцов» и увидел, что поле «Маска» пусто.

Я хочу, чтобы текстовая ячейка принимала максимум 20 символов и только: 1.Заглавные буквы (английский и греческий), 2.эти три символа (.,-), 3.Числа 0-9

Итак, в качестве первого теста я использовал только эту маску (>??????????????????????), но она не сработала, так как не преобразовывала мои символы в верхний регистр и принимала более 20 символов. символов, когда я заканчиваю редактирование ячейки.

я не уверен, что путь - это текстовое поле в маске. я сделал много проектов на vb, и я использовал цикл в событии textChanged текстового поля, чтобы ограничить ввод символов. цикл таков: (но я не могу использовать его сейчас в событии valueChanged, потому что кажется, что «значение» не имеет свойства selectionStart.)

Затемнение символов запрещено как 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)

So,

  1. Мне нужна замаскированная текстовая ячейка? и если да (почему это поле маски не сохраняет маску, которую я ввожу? И как я могу использовать этот класс для выполнения своей работы?)

  2. Что я могу поочередно сделать, чтобы ограничить некоторые символы в ячейках столбца? (Затем я переведу в верхний регистр на cellEndEdit)


person poloapolo    schedule 09.03.2015    source источник


Ответы (1)


Я, наконец, сделал это, удалив ненужные символы в событии cellvaluechanged, которое, кажется, возникает, когда я заканчиваю редактирование ячейки, например, нажимая «Ввод».

person poloapolo    schedule 18.03.2015