如何将文本框设置为仅允许数字、一 (1) 个逗号和破折号(用于负数)开头
How to set a textbox to allow only numbers, one (1) comma, AND a dash (for negative numbers) at the beginning
这是一个不同于通常的盒子 "i want only numbers in a textBox"
我发现需要使用 负数 数字,我宁愿将它们放在文本框中。
至此我们可以使用下面的代码轻松设置小数
private void textBox_KeyPress_1(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
(e.KeyChar != ','))
{
e.Handled = true;
}
// only allow one decimal point
if ((e.KeyChar == ',') && ((sender as TextBox).Text.IndexOf(',') > -1))
{
e.Handled = true;
}
}
并将其挂接到设计器中所需的框上
this.textBoxXX.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox_KeyPress_1);
到目前为止一切顺利,但是,如果我需要添加一个“-”并且只允许在代码的开头使用怎么办?有什么提示吗?
你可以试试像
这样的正则表达式
^[0-9]([.,][0-9]{1,3})?$
或
^-?\d*\.?\d*
这里是一个验证方法的例子
private void ValidateText(object sender, EventArgs e)
{
TextBox txtBox = sender as TextBox;
String strpattern = @"^-?\d*\.?\d*"; //Pattern is Ok
Regex regex = new Regex(strpattern);
if (!regex.Match(txtBox.Text).Success)
{
// passed
}
}
如何将您的文本框更改为 MaskedTextBox 并具有 Mask
类似 #99990.999
的内容?
允许输入正负小数,长度和精度由掩码中9
的数量决定。
此处9
为可选数字,0
为必填数字,.
为文化适当的小数占位符,#
为数字,space或+
或 -
.
请参阅屏蔽元素 definition 以供参考。
这是一个不同于通常的盒子 "i want only numbers in a textBox"
我发现需要使用 负数 数字,我宁愿将它们放在文本框中。
至此我们可以使用下面的代码轻松设置小数
private void textBox_KeyPress_1(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
(e.KeyChar != ','))
{
e.Handled = true;
}
// only allow one decimal point
if ((e.KeyChar == ',') && ((sender as TextBox).Text.IndexOf(',') > -1))
{
e.Handled = true;
}
}
并将其挂接到设计器中所需的框上 this.textBoxXX.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox_KeyPress_1);
到目前为止一切顺利,但是,如果我需要添加一个“-”并且只允许在代码的开头使用怎么办?有什么提示吗?
你可以试试像
这样的正则表达式^[0-9]([.,][0-9]{1,3})?$
或
^-?\d*\.?\d*
这里是一个验证方法的例子
private void ValidateText(object sender, EventArgs e)
{
TextBox txtBox = sender as TextBox;
String strpattern = @"^-?\d*\.?\d*"; //Pattern is Ok
Regex regex = new Regex(strpattern);
if (!regex.Match(txtBox.Text).Success)
{
// passed
}
}
如何将您的文本框更改为 MaskedTextBox 并具有 Mask
类似 #99990.999
的内容?
允许输入正负小数,长度和精度由掩码中9
的数量决定。
此处9
为可选数字,0
为必填数字,.
为文化适当的小数占位符,#
为数字,space或+
或 -
.
请参阅屏蔽元素 definition 以供参考。