c#对所有文本框应用相同的规则

时间:2014-08-27 03:38:41

标签: c# textbox format

我有几个文本框,并希望使用这些规则以相同的方式格式化它们:

// limits to number, control keys, and decimal
// goes to the next text box when enter
private void tb_text1_KeyPress_1(object sender, KeyPressEventArgs e)
{
    string newString = Regex.Replace(tb_text1.Text, "[^.0-9]", "");
    tb_text1.MaxLength = 6;
    e.Handled = (!char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) && e.KeyChar != '.');
    if (e.KeyChar == (char)(Keys.Enter))
    {
        this.GetNextControl(ActiveControl, true).Focus();
    }
}
// removes restricted chars
private void tb_text1_Enter(object sender, EventArgs e)
{
    tb_text1.Text = Regex.Replace(tb_text1.Text, "[^.0-9]", "");
}
// applies format at exit
private void tb_text1_Leave(object sender, EventArgs e)
{
    tb_text1.Text = string.Format("{0,-6} [Ohm]", decimal.Parse(tb_text1.Text));
}

最好的方法是什么?根据文本框创建一个新的文本框类? 感谢。

2 个答案:

答案 0 :(得分:0)

将方法替换为" tb_text1"变量到"((TextBox)发送者)",现在您可以将您的代码用于任何文本框。

答案 1 :(得分:0)

用javascript很容易做到这一点。请试试。我已经做到了,我现在无法找到那段代码。这是值得的,因为它会非常快,并且将在客户端运行。