`private void Dot_Click_1(object sender, EventArgs e)
{
if (NumBox1.Text.IndexOfAny(char['.'])
{
}`
我认为限制一个小数点的解决方案就在这里。
if (!string.IsNullOrEmpty(NumBox1.Text)
{
numbox1.text = "0" + ".";
}
}
这是文本框为空时。然后我点击点号以自动获得“0”的结果。在文本框内。但是,它只返回“。”
答案 0 :(得分:1)
目前尚不清楚为什么你会得到char['.']
,或者你的意思是什么。我怀疑你只想要字符文字'.'
并使用IndexOf
。
else if (NumBox1.Text.IndexOf('.') == -1 && ...)
如果您正在寻找多个内容,您只想使用IndexOfAny
,在这种情况下,您需要以下内容:
IndexOfAny(new[] { '.', ',' })
甚至更简单:
else if (!NumBox1.Text.Contains(".") && ...)
我强烈怀疑你的条件真的不是你想要的 - 基本上你总是将文本框值设置为“0”。如果你没有一个点(忽略任何先前的输入),而NumBox1.Text
永远不会成为null
- 但你需要为自己解决这个问题。
编辑:使用IndexOf
一次调用不会告诉您是否出现多次.
。一种简单的方法是:
if (text.IndexOf('.') != text.LastIndexOf('.'))
{
...
}