2015-03-09 9 views
0

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

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

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

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

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)

ответ

0

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