2015-02-11 26 views
0

嗨,這是我的第一篇帖子,請耐心等待。 ;)委託button1.MouseClick事件比改變其控制屬性

我有一個小的類,當事件發生時產生按鈕。 我似乎無法實現的是將代碼添加到代理mybutton_MouseClick ,該代碼可以在單獨生成的按鈕被更改時更改其顏色。

所以即時尋找一些代碼,將做: mybutton.BackColor = Color.Red;

namespace test_addObject 
{ 
    public partial class Form1 : Form 
    { 
     ButtonCreation bc = new ButtonCreation(); 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      bc.createButton(); 
     } 
    } 

    public class ButtonCreation 
    { 
     Random rdm = new Random(); 

     public void createButton() 
     { 
      Button mybutton = new Button(); 
      Form1.ActiveForm.Controls.Add(mybutton); 

      mybutton.Location = new Point(
       rdm.Next(Form1.ActiveForm.Width - mybutton.Width), 
       rdm.Next(Form1.ActiveForm.Height - mybutton.Height)); 

      //mybutton.BackColor = Color.Red; //this will generate them red. 
      mybutton.MouseClick += new MouseEventHandler(mybutton_MouseClick); 
     } 

     void mybutton_MouseClick(object sender, MouseEventArgs e) 
     { 
      //some code here to change the generated button color when they are clicked individually. 
      //... 
      //... 
     } 
    } 
} 

回答

1

這裏:void mybutton_MouseClick(object sender, MouseEventArgs e)發件人實際上是按鈕被點擊。

因此,只需將sender投射到Button,您就可以設置其背景顏色。

像這樣:

var mybutton = sender as Button; 
mybutton.BackColor = Color.Red 
+0

正是我一直在尋找。很好,謝謝。 – ska 2015-02-11 11:12:01

+0

不客氣。考慮[標記答案爲可接受](http://stackoverflow.com/help/someone-answers)而不是「謝謝」,如果答案有幫助。它也將幫助其他有類似問題的人找到正確的答案。當然是 – 2015-02-11 11:19:24

+0

。爲了找出如何做到這一點而苦苦掙扎。 ;) – ska 2015-02-11 11:23:11