Отправить специальный символ с помощью SendKeys
я использую текстовые поля для отправки текста через SendKeys, но когда я вставляю специальные символы в текстовое поле, мое приложение аварийно завершает работу. Например, когда я помещаю " + "в текстовое поле, я получаю эту ошибку: строка SendKeys" + " недопустима.
мне нужно решение для отправки специальных символов с помощью SendKeys, это часть моего кода:
SendKeys.Send(dropDownEffectsLeft1.SelectedItem.ToString() + dropDownEffectsRight1.SelectedItem.ToString() + txt1.Text);
это все о текстовом поле под названием txt1
Я думаю, что нужно что-то вроде Regex
чтобы проверить, если мой txt
содержит любые специальные символы, и что я буду делать с:
Regex specialChar = new Regex(@"^[a-zA-Z0-9_@.-]*$");
Я очень ценю вашу помощь.
1 ответов
знак плюс ( + ), карет ( ^ ), знак процента ( % ), Тильда ( ~ ), и скобки () имеют особое значение для SendKeys. Чтобы указать один из эти символы заключают его в фигурные скобки ({}). Например, укажите знак плюс, используйте" {+}". Чтобы указать символы скобок, используйте "{{}" и."}}{" Скобки ([]) не имеют специального значения для SendKeys, но вы должны заключить их в скобки. В других приложениях скобки есть особое значение, которое может иметь значение при динамических данных происходит обмен (DDE).
код
поэтому вам просто нужно регулярное выражение для замены этих символов:
string txt = Regex.Replace(txt1.Text, "[+^%~()]", "{}");
SendKeys.Send(txt);
тест
я протестировал код, и у меня есть онлайн-тест, который вы можете проверить на regex [+^%~()]
- вход: Plus + Caret ^ Percent % Tilde ~ Parenthis ()
- выход Плюс { + } Карет {^} Процентов {%} Тильда {~} Parenthis {(} {)}