使用自定义Button类而不是Forms.Button

时间:2009-11-12 20:26:43

标签: c# winforms

我创建了一个派生自Form.Button的类HoverButton。在这里,我重写了OnMouseEnter / OnMouseLeave事件。

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类而不是标准的Form.Button类?

3 个答案:

答案 0 :(得分:2)

如果您使用单独的程序集来存储控件,则可以右键单击控件工具栏并为程序集添加项目。然后,您可以像任何其他内置控件一样拖放控件。

如果您正在寻找一些不那么优雅的东西,您可以进入Designer.cs文件并将按钮的类型从Button更改为HoverButton。

答案 1 :(得分:1)

How to add and create a Usercontrol in Visual Studio 2008

注意:要使控件自动显示在工具箱中,请确保在VS中设置此选项:

工具>选项> Windows窗体设计器>一般:AutoToolboxPopulate

答案 2 :(得分:0)

如果您在表单设计器中查看工具箱,您应该会看到您创建的HoverButton。 (成功构建课程之后。)然后将其拖动到表单上,就像常规按钮一样。