不确定这里究竟出了什么问题.我不确定我是否应该使用"else if"或者什么.这是代码:
private void txtMessage_TextChanged(object sender, EventArgs e)
{
int length = txtMessage.TextLength;
int left = 140 - length;
charactersleft.Text = left.ToString() + " characters left";
if (left < 140)
{
charactersleft.ForeColor = Color.Green;
}
if (left < 110)
{
charactersleft.ForeColor = Color.Yellow;
}
if (left < 80)
{
charactersleft.ForeColor = Color.Orange;
}
if (left < 50)
{
charactersleft.ForeColor = Color.Red;
}
else
{
charactersleft.ForeColor = Color.Black;
}
}
Run Code Online (Sandbox Code Playgroud)
标签"charactersleft"的前景色应该根据txtMessage中的字符数而改变.但由于某种原因,它不起作用.我确信解决方案很简单,我很容易与整个"别的if"混淆.提前致谢.
cjk*_*cjk 14
这里的问题是如果长度是30,它将匹配每个if.如果对于每个语句,您应该颠倒顺序并使用else:
if (< 50) // red
else if (< 80) // orange
...
else //black
Run Code Online (Sandbox Code Playgroud)
将它们更改为:
if (left < 50)
{
charactersleft.ForeColor = Color.Green;
}
else if (left < 80)
{
charactersleft.ForeColor = Color.Yellow;
}
else if (left < 110)
{
charactersleft.ForeColor = Color.Orange;
}
else if (left < 140)
{
charactersleft.ForeColor = Color.Red;
}
else
{
charactersleft.ForeColor = Color.Black;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
951 次 |
| 最近记录: |