我工作的公司有古怪的舊數據庫系統和許多遺留應用程序,當他們遇到非ascii字符時會拋出硬錯誤。如何在整個.Net winforms應用程序中限制對有限字符集的輸入。 (vb.net/c#)
因爲他們意識到這些應用程序需要去,所以他們開始在vb.net WinForms應用程序中封裝後端,並且在對這些舊系統進行了1.5年的封裝之後,他們發現了這個錯誤。
他們聘請我來解決這個問題。 :(
在許多情況下,UI是使用數據綁定和來自DevExpress等第三方的FormView-esque解決方案構建的,因此,需要大量工作來分解UI並使用類似的中間效用函數重新構建它們以下幾點:
TextBox.Text = Sanitize(dataObject.Value);
and
dataObject.Value = Sanitize(TextBox.Text);
我找的,我可以破解應用程序的CultureInfo(或其他財產)的方式,使所有的文本框本身只能處理ASCII,類似行爲的許多Web瀏覽器似乎展覽
另外作爲一個說明:許多文字輸入來自開發快,所以即使是正在使用的文本框被包裝起來。
有沒有辦法附加到窗體的ControlAdded事件並將控件設置爲僅處理ASCII或utf-8/utf-7?
有人在那裏遇到過這種情況。如果沒有一些可怕的黑客入侵,我需要2年才能修復所有這些應用。