防止C#中的重复代码

时间:2014-04-03 19:11:07

标签: c# .net events design-patterns

我正在使用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; 
        }              
    }

是蚂蚁设计模式或技术,只编写一次上面的代码,并且不写,每次都为表格中的每个文本框?

4 个答案:

答案 0 :(得分:9)

对TextBox类进行子类化,将数字检查添加到其中,并使用新文本框代替通常的文本框。

示例
How to: Create a Numeric Text Box

答案 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实现的方法.......