2015-09-15 169 views
0

我想要改變我的按鈕的顏色,當它有一個默認的顏色。我嘗試使用下面的代碼,但它不起作用。我怎樣才能做到這一點?按鈕BackColor不會改變

public void ClickedButton (object sender, EventArgs e) 
{ 
    if ((sender as Button).BackColor == System.Drawing.SystemColors.Control) { 
     (sender as Button).BackColor = Color.Turquoise; 
    } 
} 
+0

您是否設置了控件樣式? –

+1

爲什麼不只是將'sender'強制轉換爲局部變量而不是執行兩個'as'強制轉換? – juharr

+2

定義「不起作用」。這是wpf嗎? AFAIK'Button'沒有'BackColor'屬性,也許你使用了錯誤的命名空間 – thumbmunkeys

回答

0

嘗試鑄造發件人按鈕第一:

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窗體控件,它可能不會(除非您將它作爲回發的一部分調用)。

1

您需要添加調試行驗證按鈕

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; 
    } 
} 

,將與您的代碼有助於排除故障的當前顏色。你的當前代碼也沒有問題。結果如下。

enter image description here

下面是結果在Output Window

enter image description here