0

我希望我的 Win-Forms 应用程序(有许多不同的表单)只接受用户输入的某些字符。此限制应适用于所有表单、所有输入字段等。是否有任何简单的解决方案来实现这一点,而无需向每个表单添加键盘事件,甚至更好,无需更改任何现有表单?

首先,我想到了一个低级键盘挂钩,但这将全局应用于系统上运行的每个应用程序中的每个用户输入,我猜这不是理想的解决方案。还有其他可能性或建议吗?

4

1 回答 1

0

如果为所需的每个控件创建自定义控件并将控件设置为继承核心控件,则可以这样做。例如,此代码将防止单击零:

public class MyTextBox : TextBox
{
    protected override void OnKeyUp(KeyEventArgs e)
    {
        if (e.KeyCode == Keys.D0)
            e.SuppressKeyPress = true;
    }
}

您甚至可以从工具箱中拖动此控件(在构建之后)。

于 2012-08-06T08:29:50.797 回答