亲爱的所有我们开发了一个hr应用程序(winform),它包含近98种形式。它在我们的组织中进行测试。 但现在的问题是管理层希望所有数据输入都处于大写状态。我们没有在任何控件中设置任何字符大小写,现在将字符大小写更改为所有控件几乎是非常危险的
有人可以提出任何想法,只能将输入限制为大写吗?。我在Program.cs文件中尝试了一些东西。但它似乎无法正常工作
还试图覆盖textbox.textchanged事件似乎是一个愚蠢的想法,任何更多的想法请考虑我们作为开发中的新bie
答案 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应该可以工作。