2009-11-12 17 views
1

我創建了從Form.Button派生的類HoverButton。在這裏我重寫了OnMouseEnter/OnMouseLeave事件。使用自定義按鈕類而不是Forms.Button

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace DSLiteWizardLib 
{ 
    class HoverButton : Button 
    { 
     #region Constructor 
     public HoverButton() 
     { 
      InitializeComponent(); 
      bMouseHover = false; 
     } 
     #endregion 

     #region Methods 
     private void OnMouseEnter(object sender, System.EventArgs e) 
     { 
      bMouseHover = true; 
     } 
     private void OnMouseLeave(object sender, System.EventArgs e) 
     { 
      bMouseHover = false; 
     } 
     private void InitializeComponent() 
     { 
      this.MouseEnter += new System.EventHandler(this.OnMouseEnter); 
      this.MouseLeave += new System.EventHandler(this.OnMouseLeave); 
     } 
    } 
} 

最後,我想通過對懸停狀態的圖像,按下狀態等

我怎樣才能像放在我的形式用我HoverButton類,而不是標準形式的按鈕.Button類?

+1

僅供參考 - 你不是在這裏壓倒一切,你正在訂閱這些事件。 OnMouseLeave和OnMouseEnter上的override關鍵字可以正確覆蓋它們。 – 2009-11-12 20:37:27

回答

2

如果您使用單獨的程序集來存儲控件,可以右鍵單擊控件工具欄併爲程序集添加項目。然後,您可以像其他內置控件一樣拖放控件。

如果您正在尋找不太優雅的東西,您可以進入Designer.cs文件並將按鈕的類型從Button更改爲HoverButton。

0

如果您在窗體設計器的工具箱中查看,則應該看到您創建的HoverButton。 (成功構建課程之後。)然後將其拖到表單上,就像常規按鈕一樣。