Как ограничить ввод ограниченным набором символов для всего приложения .Net winforms.(Vb.net/c#) - PullRequest
0 голосов
/ 17 декабря 2010

Компания, в которой я работаю, имеет смехотворно старые системы баз данных и множество устаревших приложений, которые выдают серьезные ошибки при обнаружении символов, отличных от ascii.

Поскольку они поняли, что эти приложения должны быть запущены, они начали оборачивать серверную часть вvb.net WinForms приложения, и после 1,5 лет обертывания этих старых систем они обнаружили эту ошибку.

Они наняли меня, чтобы решить эту проблему.: (

Во многих случаях пользовательские интерфейсы создавались с использованием привязки данных и решений FormView-esque от сторонних разработчиков, таких как DevExpress. В результате потребовалось бы много работы для декомпозиции пользовательских интерфейсов и их перекомпоновки с использованием некоторой средней утилиты.функция, подобная следующей:

TextBox.Text = Sanitize(dataObject.Value);
and
dataObject.Value = Sanitize(TextBox.Text);

Я ищу способ взломать Applications CultureInfo (или другое свойство), чтобы все текстовые поля изначально обрабатывали только ASCII, аналогично поведению многихвеб-браузеры, кажется, демонстрируют.

Также как примечание: многие текстовые входные данные поступают из dev express, поэтому даже используемые текстовые поля свернуты.

Есть ли способ прикрепить ксобытие Forms 'ControlAdded и установка элемента управления для обработки только ASCII, или utf-8 / utf-7?

Кто-то должен был столкнуться с этим. Мне понадобится 2 года, чтобы исправить все эти приложенияесли не будет какого-то ужасного взлома, я могу его поставить.

1 Ответ

1 голос
/ 17 декабря 2010

Вы можете рекурсивно обрабатывать ControlAdded для каждой формы для изменения каждого TextBox.

Затем обработайте событие KeyPress и установите e.Handled = true, если вам не нравится символ.1007 * Для редакторов DevExpress вам нужно обрабатывать TextEdit или TextBoxMaskBox, но не оба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...