0

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

任何人都可以提出任何将输入限制为大写的想法吗?我在 Program.cs 文件中尝试过一些东西。但它似乎不起作用

还试图覆盖 textbox.textchanged 事件,这似乎是一个愚蠢的想法,如果有更多想法,请考虑将我们视为开发中的新成员

4

2 回答 2

2

虽然这是一个奇怪的要求,但您可以使用 LINQ 来“大写”所有 TextBox-Control:

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.OfType过滤器TextBoxBase

请注意,这不会递归搜索控件。当前仅搜索顶部的控制容器。如果您需要递归搜索,请执行类似这样的操作。

于 2012-10-16T08:20:11.453 回答
0

看看KeyPreview事件,它可以让您控制应用程序的所有输入,而不管焦点在哪里。

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

于 2012-10-16T08:15:57.027 回答