我目前正在尝试在C#中创建一个计算器,它接受来自两个文本框的数据并对它们执行操作。我在处理负值时遇到问题,特别是限制文本框在开始时只有一个连字符。这是我尝试过的代码,但是如果我使用退格键删除连字符,那么我就无法再将它删回。
bool neg = false;
private void val2_KeyPress(object sender, KeyPressEventArgs e)
{
char ch = e.KeyChar;
if (!Char.IsDigit(ch) && ch != 8 && ch != 127 && ch != 46 && ch != 45)
{
e.Handled = true;
}
else if (ch == 46)
{
if (pnt2 == true)
{
e.Handled = true;
}
pnt2 = true;
}
else if (ch == 45)
{
if (neg == true)
{
e.Handled = true;
}
neg = true;
}
}
有什么建议吗? 提前谢谢。
答案 0 :(得分:2)
检查您的控制文字。如果它包含连字符 - 不允许使用连字符。
if(val2.Text.Contains("-"))
{
e.Handled = true;
}
如果您想仅允许连字符作为第一个字符,请执行以下操作:
if(val2.Text.Length > 0)
{
e.Handled = true;
}