我有这个文本框,其中小数位应该只有两个,它可以工作,但后来禁用后退空间
try
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
textBox2.Clear();
}
else
{
if (Convert.ToDouble(textBox1.Text) > Convert.ToDouble(grandTotal.Text))
{
double change = Convert.ToDouble(textBox1.Text) - Convert.ToDouble(grandTotal.Text);
textBox2.Text = change.ToString("#,0.00");
}
else if (Convert.ToDouble(textBox1.Text) == Convert.ToDouble(grandTotal.Text))
{
textBox2.Text = "0";
}
else
{
textBox2.Clear();
}
}
}
catch(Exception)
{
}
答案 0 :(得分:0)
您可以在文本框KeyPress事件处理程序上执行此操作:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '.' && textBox1.Text.Contains('.'))
e.Handled = true;
if (char.IsNumber(e.KeyChar) || e.KeyChar == '.')
{
if (Regex.IsMatch(
textBox1.Text,
"^\\d*\\.\\d{2}$")) e.Handled = true;
}
else e.Handled = e.KeyChar != (char)Keys.Back;
}
它的作用基本上是将小数位数限制为2,它还将小数点限制为1。但是退格应该仍然可以正常工作。
答案 1 :(得分:0)
此外,您还可以选择其他选项,而不是对所选控件进行编码(textBox1)。您可以创建可重复使用的自定义文本框控制器。这将指导您Decimal Textbox in Windows Forms