2012-02-16 184 views
0

我已經做了一些研究,但似乎無法找到我所期待的。自定義按鈕

我想要做的是使一個窗口形式的「自定義」按鈕。這基本上只是將默認的「灰色」背景改爲自定義圖像的問題。當鼠標懸停並點擊按鈕時,也會使用自定義圖片。

這不僅僅是一個更改背景圖片,因爲我想使用已經具有透明背景圓滑的邊緣,我想自定義圖像徘徊在圖像的事/點擊。我希望關於按鈕的所有其他內容與普通按鈕的行爲方式相同。

這可能嗎?

+1

聽起來更像你想使用WPF。但是,您是否可以選擇遷移到WPF,還是陷入Windows窗體? – 2012-02-16 23:43:38

+0

我幾乎只限於Windows窗體。 – Jpin 2012-02-16 23:47:07

+0

從這裏到那裏的最快路線很可能是授權你需要的控制,而不是從頭開始寫。 – Bevan 2012-02-17 00:21:15

回答

3

我找到的解決方案是按鈕的的FlatStyle設置爲和設置所有的邊界爲0.然後我有一個按鈕的焦點問題(它顯示了一個小邊框)。爲了解決這個我跟着這個教程:

http://dotnetstep.blogspot.com/2009/06/remove-focus-rectangle-from-button.html

有了這個地方我所要做的就是事件添加到該按鈕,這樣,當某個動作是在它執行的圖像被改變:

private void button1_MouseLeave(object sender, EventArgs e) 
    { 
     this.button1.Image = Properties.Resources._default; 
    } 

    private void button1_MouseEnter(object sender, EventArgs e) 
    { 
     this.button1.Image = Properties.Resources._hover; 
    }   

    private void button1_MouseDown(object sender, MouseEventArgs e) 
    { 
     this.button1.Image = Properties.Resources._clicked; 
    } 

    private void button1_MouseUp(object sender, MouseEventArgs e) 
    { 
     this.button1.Image = Properties.Resources._default; 
    } 

希望這會幫助別人!