2012-10-16 59 views
0

Dear All我們開發了一個由近98個表單組成的hr應用程序(winform),並在我們的組織中進行測試。 但現在的問題是管理層希望所有的數據輸入都在大寫中。我們沒有在我們的任何控件中設置任何字符外殼,現在它幾乎非常危險地將字符外殼更改爲所有控件在應用程序中將alla textinput控件轉換爲大寫

任何人都可以建議任何想法做限制輸入只有大寫?我曾嘗試過一些事情在Program.cs文件。但它似乎不起作用

也試圖覆蓋textbox.textchanged事件它似乎是一個愚蠢的想法任何更多的想法請考慮我們作爲新的開發bie

回答

0

看看KeyPreview事件,它可能允許您控制所有輸入爲應用程序,無論重點在哪裏。

我會說到目前爲止,最好的解決方案是用您自己的文本框實現替換所有的文本框 - 使這樣的更改變得更簡單,但如果這樣做不實際,KeyPreview應該可以工作。

+0

我認爲它可以在Program.cs –

2

雖然這是一個奇怪的要求,你可以使用LINQ到「上部文本」的所有文本框 - 控制:

var allTxt = from form in Application.OpenForms.Cast<Form>() 
      from txt in form.Controls.OfType<TextBoxBase>() 
      select txt; 
foreach (var txt in allTxt) 
    txt.Text = txt.Text.ToUpper(); 

Application.OpenForms回報應用程序和TextBoxBase擁有所有打開的形式是基類文本 - 控件(TextBox,RichTextBox)。 Enumerable.OfTypeTextBoxBase的過濾器。

請注意,這不會遞歸搜索控件。目前只搜索頂部的控制容器。如果你需要一個類似this的遞歸搜索工具。

+0

的應用程序安裝中實現,但是我可以從哪裏調用此函數 –

+0

@sreenathsreenath:例如從按鈕單擊事件處理程序中您想要的任何位置。 –

+0

我可以在課堂上設置嗎?並在程序加載時加載? –