将WINDOWS的按钮控件封装为用户控件,常用事件与属性要暴露
   在点击后将按钮变灰,在完成按钮事件后,再变为可用     没用户过自定义用户控件  自己也写了个自定义控件 但是其里面的事件就没有反应了·   急···· 麻烦各位帮小弟解决这个问题      还有一个就是  这个是用于做 C/S 的  

解决方案 »

  1.   


    你从哪里继承的?如何控件拥有按钮特效,最好按如下的基类继承:
    public class MyButtonBase : System.Windows.Forms.Control,IButtonControl
        
    orpublic class MyButtonBase : System.Windows.Forms.ButtonBase,
      

  2.   


    // 继承按钮类
        public partial class MyBtn : Button
        {
            /// <summary>
            /// 构造
            /// </summary>
            public MyBtn()
            {
                InitializeComponent();
                // 添加一个单机事件
                this.Click += new EventHandler(MyBtn_Click);
            }        /// <summary>
            /// 此事件会在用户点击之前执行
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void MyBtn_Click(object sender, EventArgs e)
            {
                this.Enabled = false;            
            }        /// <summary>
            /// 重写按钮事件,用户处理完成后,恢复按钮
            /// </summary>
            /// <param name="e"></param>
            protected override void OnClick(EventArgs e)
            {            
                base.OnClick(e);
                this.Enabled = true;
            }
           
        }
      

  3.   

    你这个项目是在哪里面写、?  貌似我那用的是继承的是 UserControl   你这个是新建哪个项目??
      

  4.   

    这个需要手动改一下继承UserControl 的就可以了
      

  5.   


    我把继承的类 改成 Button 出错了 说找不到这个 AutoScaleMode  是否还要 using 哪个东西
      

  6.   


    新建的是类就找不到     public MyBtn()
            {
             InitializeComponent();
                // 添加一个单机事件
                this.Click += new EventHandler(MyBtn_Click);
            }就找不到    InitializeComponent();  这个东西找不着了。。
      

  7.   


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        // 继承按钮类
        public partial class MyBtn : Button
        {
            /// <summary>
            /// 构造
            /// </summary>
            public MyBtn()
            {
                InitializeComponent();
                // 添加一个单机事件
                this.Click += new EventHandler(MyBtn_Click);
            }        /// <summary>
            /// 此事件会在用户点击之前执行
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void MyBtn_Click(object sender, EventArgs e)
            {
                this.Enabled = false;            
            }        /// <summary>
            /// 重写按钮事件,用户处理完成后,恢复按钮
            /// </summary>
            /// <param name="e"></param>
            protected override void OnClick(EventArgs e)
            {            
                base.OnClick(e);
                this.Enabled = true;
            }
           
        }
    }[code=C#]
    namespace WindowsFormsApplication1
    {
        partial class MyBtn
        {
            /// <summary>
            /// 必需的设计器变量。
            /// </summary>
            private System.ComponentModel.IContainer components = null;        /// <summary> 
            /// 清理所有正在使用的资源。
            /// </summary>
            /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }        #region 组件设计器生成的代码        /// <summary>
            /// 设计器支持所需的方法 - 不要
            /// 使用代码编辑器修改此方法的内容。
            /// </summary>
            private void InitializeComponent()
            {
                components = new System.ComponentModel.Container();
            }        #endregion
        }
    }
    [/code]