在应用程序中将alla textinput控件转换为大写

时间:2012-10-16 08:10:21

标签: c#-4.0

亲爱的所有我们开发了一个hr应用程序(winform),它包含近98种形式。它在我们的组织中进行测试。             但现在的问题是管理层希望所有数据输入都处于大写状态。我们没有在任何控件中设置任何字符大小写,现在将字符大小写更改为所有控件几乎是非常危险的

有人可以提出任何想法,只能将输入限制为大写吗?。我在Program.cs文件中尝试了一些东西。但它似乎无法正常工作

还试图覆盖textbox.textchanged事件似乎是一个愚蠢的想法,任何更多的想法请考虑我们作为开发中的新bie

2 个答案:

答案 0 :(得分:2)

虽然这是一个奇怪的要求,但您可以使用LINQ来“高级文本”所有TextBox-Controls:

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)。 TextBoxBase的{​​{3}}过滤器。

请注意,这不会递归搜索控件。目前只搜索顶部控件容器。如果您需要递归搜索工具,例如Enumerable.OfType

答案 1 :(得分:0)

查看KeyPreview事件,它可能允许您控制应用的所有输入,无论焦点位于何处。

我想说到目前为止,最好的解决方案是用你自己的文本框实现替换所有文本框 - 这样做的更改更简单,但如果这不实用,KeyPreview应该可以工作。