привет я знаю, где мой код будет неправильно, но не знаю, как это исправить ...Validate текстовое поле текста и увеличить индекс вкладки раз
на событие TextChanged, я называю свою функцию проверки, которая делает (предполагается сделать) следующее:
- удалить любое нерастворимое письмо характер
- преобразовать введенную букву в верхнем регистре
- позволяют только один символ в текстовом поле
- использовать SendKeys для увеличьте индекс вкладки (перейдите к следующему текстовому полю)
проблема, так как она находится в событии с изменением текста, я пытаюсь бороться с ней, чтобы предотвратить ее двойную смену (что она делает). потому что, если я пройду через, начальная введенная буква является первым событием с изменением текста, то, если это недопустимый символ, функция вызывается снова, но если это письмо, ToUpper может снова ее изменить, так что вкладка дважды отправляется , есть идеи? я знаю, что есть способ сделать это без создания некоторых сложного Bools ....
private void validateTextInteger(object sender, EventArgs e)
{
TextBox T = (TextBox)sender;
try
{
//Not Allowing Numbers, Underscore or Hash
char[] UnallowedCharacters = { '0', '1','2', '3', '4', '5','6', '7','8', '9','_','#','%','$','@','!','&',
'(',')','{','}','[',']',':','<','>','?','/','=','-','+','\\','|','`','~',';'};
if (textContainsUnallowedCharacter(T.Text, UnallowedCharacters))
{
int CursorIndex = T.SelectionStart - 1;
T.Text = T.Text.Remove(CursorIndex, 1);
//Align Cursor to same index
T.SelectionStart = CursorIndex;
T.SelectionLength = 0;
}
}
catch (Exception) { }
T.Text = T.Text.ToUpper();
if (T.Text.Length > 0)
{
//how do i prevent this (or this function) from getting called twice???
SendKeys.Send("{TAB}");
}
}
я думаю для этого тогда, я не знаю, как ссылаться на имя следующего текстового поля. вы увидите из функции, я принимаю отправителя как текстовое поле и ссылаюсь на него как на элемент управления. поэтому, если первое текстовое поле является 'textbox1', я не знаю, как изменить фокус на' textbox2', используя мою текущую настройку. – ikathegreat
Я отредактировал свой ответ, чтобы показать, как сосредоточиться на следующем элементе управления в форме табуляции формы, не зная, какой контроль он опережает время. Обратите внимание, что если у вас есть групповые или другие элементы управления контейнером в форме, возможно, вам придется изменить приведенный выше код, чтобы принять это во внимание. –
muahahaha это работает отлично, спасибо !!!! снова в деле.... – ikathegreat