当用户在文本框中输入信息时,什么方法设置文本框的文本
本文关键字:文本 方法 什么 置文本 信息 用户 输入 | 更新日期: 2023-09-27 18:14:58
我正在学习如何通过继承c#中的父类来实现自定义控件。
我需要重写当用户输入文本时触发的例程。显然,我可以使用TextChanged
添加一个事件来触发,但这对我来说似乎是一种肮脏的清理方法。
我已经研究了覆盖Text {get;set;}
属性,但这不起作用。
帮助吗?
可以使用KeyDown
事件。注意,用户仍然可以在不引发KeyDown
事件的情况下粘贴内容。为了捕获所有输入,您需要像您想象的那样处理TextChanged
;
可以考虑的一种方法是创建一个扩展标准TextBox
的自定义TextBox。您可以override
许多属性和方法,包括OnKeyPress
来处理用户输入。
简单的例子:
class MyTextBox : TextBox
{
protected override void OnKeyPress(KeyPressEventArgs e) {
if (e.KeyChar == '!') {
e.Handled = true;
}
base.OnKeyPress(e);
}
}
本例中的TextBox
将在用户输入感叹号时忽略输入。你可以像使用标准的Winform TextBox
控件一样使用这个文本框。
你可以使用Visual Studio的智能感知来查看哪些override
可用。只需在类中键入'override'创建一个新成员,所有可重写的成员就会出现。
编辑有关示例,请参阅codeproject.com上的这篇文章。本文中提供的控件扩展了TextBox以专门过滤掉非数字字符,但您可以轻松地修改它以过滤掉您需要过滤的字符。
使用自定义控件的另一个理由是:您可以跨项目重用它,而不必每次都重新编码。