如果数字低于18
,我尝试将文本框设为红色时出错 你能帮我解决这个问题吗?我不知道如何解决问题
private void textBox1_TextChanged(object sender, EventArgs e)
{
double numt = 18;
if (textBox1.Text <= numt) ////error here
{
textBox1.BackColor = Color.Red;
}
else
{
textBox1.BackColor = Color.White;
}
答案 0 :(得分:0)
将 textBox1.Text
转换为dobule进行比较。
if (Convert.ToDouble(textBox1.Text) <= numt)
答案 1 :(得分:0)
您需要使用textBox1.Text
将double
转换为double.Parse(...)
。你不能直接&#34;比较字符串和双精度,因为它可能导致完整的无意义操作,如
if ("dog" <= 18)
{
// Do whatever
}
else if ("chair" > 2.3)
{
// ...
}
显然,这完全是胡说八道。虽然你可能知道textBox1.Text
将包含一个数字,但编译器并不知道 - 主要原则是你原则上可以有这种情况。
顺便说一下,不要盲目地信任用户做正确的事情。考虑如果用户输入其他而不是整数,将会发生什么,并在尝试使用它之前对其进行验证。所以,实际上,你不知道这将导致一些明智的事情 - 因为你知道的所有用户都可以键入像#34; dog&#34;或&#34;主席&#34;在文本框中,然后你就像我们上面那样有一个明显无意义的情况。