我正在使用C#在win表单中编写桌面应用程序。我使用以下代码将文本框转换为数字文本框:
private void txtPrice_KeyPress(object sender, KeyPressEventArgs e)
{
//if (!char.IsControl(e.KeyChar)
// && !char.IsDigit(e.KeyChar)
// && e.KeyChar != '.')
// {
// e.Handled = true;
// }
if(!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
是蚂蚁设计模式或技术,只编写一次上面的代码,并且不写,每次都为表格中的每个文本框?
答案 0 :(得分:9)
对TextBox类进行子类化,将数字检查添加到其中,并使用新文本框代替通常的文本框。
答案 1 :(得分:1)
创建一个名为numeric textbox的新组件,该组件继承TextBoxBase类。
您在此处编写的代码无效,因为有人可以复制和粘贴文本值。
您必须覆盖text_change事件。
答案 2 :(得分:1)
如果你想要定制,罗伯特的答案是最好的方法。或者,如果您不了解它,可以使用内置的NumericUpDown control。
答案 3 :(得分:1)
创建一个方法....例如
private void press(object sender, KeyPressEventArgs e)
{
//what ever code here,,,,,,i dont care
}
//我假设你正在使用visual studio.net
//突出显示或选择文本框或文本框....
//然后转到属性窗口,,,,,
//之后点击闪电图标....或事件图标
//然后转到您的KeyPress事件-------并单击下拉按钮
//之后添加你想要由Control实现的方法.......