按钮 BackColor 没有改变
Button BackColor doesn't change
当按钮具有默认颜色时,我想更改它的颜色。我尝试使用下面的代码,但它不起作用。我该怎么做?
public void ClickedButton (object sender, EventArgs e)
{
if ((sender as Button).BackColor == System.Drawing.SystemColors.Control) {
(sender as Button).BackColor = Color.Turquoise;
}
}
您需要添加调试行来验证按钮的当前颜色
public void ClickedButton (object sender, EventArgs e)
{
// add debug line here
string message = (sender as Button).BackColor.ToString();
Debug.WriteLine(message);
if ((sender as Button).BackColor == System.Drawing.SystemColors.Control) {
(sender as Button).BackColor = Color.Turquoise;
}
}
这将有助于您对代码进行故障排除。您当前的代码也没有任何问题。下面是结果。
这是 Output Window 中的结果:
首先尝试将 sender 转换为 Button:
public void ClickedButton (object sender, EventArgs e)
{
var btn = sender as Button;
if ((btn != null) && btn.BackColor == System.Drawing.SystemColors.Control)) {
btn.BackColor = Color.Turquoise;
}
}
如果这是一个 Windows 表单控件,那应该可以。
如果这是一个 Web 窗体控件,它可能不是(除非您将其作为回发的一部分调用)。
当按钮具有默认颜色时,我想更改它的颜色。我尝试使用下面的代码,但它不起作用。我该怎么做?
public void ClickedButton (object sender, EventArgs e)
{
if ((sender as Button).BackColor == System.Drawing.SystemColors.Control) {
(sender as Button).BackColor = Color.Turquoise;
}
}
您需要添加调试行来验证按钮的当前颜色
public void ClickedButton (object sender, EventArgs e)
{
// add debug line here
string message = (sender as Button).BackColor.ToString();
Debug.WriteLine(message);
if ((sender as Button).BackColor == System.Drawing.SystemColors.Control) {
(sender as Button).BackColor = Color.Turquoise;
}
}
这将有助于您对代码进行故障排除。您当前的代码也没有任何问题。下面是结果。
这是 Output Window 中的结果:
首先尝试将 sender 转换为 Button:
public void ClickedButton (object sender, EventArgs e)
{
var btn = sender as Button;
if ((btn != null) && btn.BackColor == System.Drawing.SystemColors.Control)) {
btn.BackColor = Color.Turquoise;
}
}
如果这是一个 Windows 表单控件,那应该可以。
如果这是一个 Web 窗体控件,它可能不是(除非您将其作为回发的一部分调用)。