C# 仅在C中的屏蔽文本框中输入算术运算符#
我正在用c语言在windows窗体中创建应用程序# 我知道在屏蔽文本框中,我们可以限制输入的格式,也可以限制我们可以验证的输入类型,如仅数字、仅字符、字母数字。C# 仅在C中的屏蔽文本框中输入算术运算符#,c#,winforms,maskedtextbox,C#,Winforms,Maskedtextbox,我正在用c语言在windows窗体中创建应用程序# 我知道在屏蔽文本框中,我们可以限制输入的格式,也可以限制我们可以验证的输入类型,如仅数字、仅字符、字母数字。 但现在我试图限制屏蔽文本(或简单文本框)只接受单个算术运算符(+或-或*或/)。我在网上搜索过,但没有找到办法。请帮助我解决这个问题。我认为更简单的方法是将文本框属性中的最大长度字符限制为1 在TextChanged事件中,您可以编写 private void textBox1_TextChanged(object sender, Ev
但现在我试图限制屏蔽文本(或简单文本框)只接受单个算术运算符(+或-或*或/)。我在网上搜索过,但没有找到办法。请帮助我解决这个问题。我认为更简单的方法是将文本框属性中的最大长度字符限制为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")
}
}
}
使用常规的
文本框
MaskedTextBox
无法满足您的需要。在一个非常简单的表单示例中,对文本框上的按键
使用如下事件处理程序:
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
Winforms、web forms、WPF、GTK+,…?@jdpenix windows Form因为它只接受一个字符,所以我认为屏蔽文本框是不必要的,所以我在简单的文本框中完成了它。您在代码中对它进行了很好的解释,效果非常好。我还需要另一个。我需要在输入时进行限制。我的意思是,当我在文本框中按下任何算术运算符时,它被输入,但如果我按下算术运算符以外的任何键,它不应该在文本框中输入。就像仅用于整数的00000掩码一样。有可能吗?因为它只是一个单字符文本框,如果不是预期的字符,它会在用户输入后立即清除文本。哇!那太好了,现在它起作用了。谢谢你帮助我。我已把你的答案标为正确答案。