以文本框形式有条件地更改 BackColor 的问题
Problem changing condicionally BackColor in a textbox form
我正在尝试在 Windows 形式的文本框中设计一个语句,以便在给定输入为 <
、>
或 [=13= 时改变背景颜色] 给定变量。
我一直在尝试 if
/else if
和 switch
。
private void txtPuntosTotalesAGenerar_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
int finalSamplePoints = Convert.ToInt32(Console.ReadLine());
int try1 = 1500;
if (finalSamplePoints > try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Orange;
}
else if (finalSamplePoints < try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Red;
}
else if (finalSamplePoints == try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Green;
}
}
}
使用这段代码我已经能够获得红色背景颜色,但它永远不会改变,无论我在文本框中引入什么值。
问题是 Console.ReadLine()
在按下 Enter 键时总是给你 0 。
我认为你需要像这样修改逻辑
private void txtPuntosTotalesAGenerar_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
int finalSamplePoints = Convert.ToInt32(txtPuntosTotalesAGenerar.Text);
int try1 = 1500;
if (finalSamplePoints > try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Orange;
}
else if (finalSamplePoints < try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Red;
}
else if (finalSamplePoints == try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Green;
}
}
}
显然,您需要添加适当的验证以确保正确处理任何非数字输入。
我正在尝试在 Windows 形式的文本框中设计一个语句,以便在给定输入为 <
、>
或 [=13= 时改变背景颜色] 给定变量。
我一直在尝试 if
/else if
和 switch
。
private void txtPuntosTotalesAGenerar_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
int finalSamplePoints = Convert.ToInt32(Console.ReadLine());
int try1 = 1500;
if (finalSamplePoints > try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Orange;
}
else if (finalSamplePoints < try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Red;
}
else if (finalSamplePoints == try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Green;
}
}
}
使用这段代码我已经能够获得红色背景颜色,但它永远不会改变,无论我在文本框中引入什么值。
问题是 Console.ReadLine()
在按下 Enter 键时总是给你 0 。
我认为你需要像这样修改逻辑
private void txtPuntosTotalesAGenerar_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
int finalSamplePoints = Convert.ToInt32(txtPuntosTotalesAGenerar.Text);
int try1 = 1500;
if (finalSamplePoints > try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Orange;
}
else if (finalSamplePoints < try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Red;
}
else if (finalSamplePoints == try1)
{
txtPuntosTotalesAGenerar.BackColor = Color.Green;
}
}
}
显然,您需要添加适当的验证以确保正确处理任何非数字输入。