仅在C#中的Masked TextBox中输入算术运算符

时间:2014-03-17 05:34:08

标签: c# winforms maskedtextbox

我在c#

中以windows窗体创建应用程序

我知道在蒙版文本框中,我们可以限制输入的格式,并且还限制我们可以仅像数字一样验证哪种类型的输入,仅限字符,字母数字。 但是现在我试图限制掩码文本(或简单的文本框)来接受单个算术运算符(+或 - 或*或/)。我在网上搜索过但没找到方法。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

我认为更简单的方法是将文本框属性中的“最大长度”字符限制为1

在TextChanged事件中你可以写

private void textBox1_TextChanged(object sender, EventArgs e)
{
  if (textBox1.Text.Length > 0)
  {
    char[] SpecialChars = "+-*/".ToCharArray();
    int indexOf = textBox1.Text.IndexOfAny(SpecialChars);
    if (indexOf == -1)
     {
      textBox1.Text = string.Empty;
      MessageBox.Show("Enter Valid Character")
     }
   }
 }

答案 1 :(得分:0)

使用常规TextBoxMaskedTextBox无法满足您的需求。在一个非常简单的表单示例中,对KeyPress上的TextBox使用这样的事件处理程序:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
  var accepted = new[] {'+', '-', '*', '/', (char)Keys.Back};
  if (!accepted.Intersect(new[] {e.KeyChar}).Any()) {
    e.Handled = true;
  }
}

并将TextBox.MaxLength属性设置为1