封装 TButton
要求封装一个按钮: 
 功能:在click之后按钮变enabled   变成   Flase   执行结束   变回来 
 同时要增加一个属性就是要不要这个功能: 
 这个功能为True,则实现上面的功能 
 为False的时候,则和普通的按钮一样   
 小弟,不懂,请指教! 
 贴点代码最好拉! 
 谢谢
------解决方案--------------------using System; 
 using System.Collections.Generic; 
 using System.Text; 
 using System.Windows.Forms; 
 using System.ComponentModel;   
 namespace lw.CSharp.Test 
 { 
     public class WrapperButton : Button 
     { 
         public delegate void FeedbackEventHandler(object sender, FeedbackEventArgs e); 
         public event FeedbackEventHandler OnFeedback;   
         private bool _waitFeedback = true;   
         public WrapperButton() 
             : base() 
         { 
         } 
         ///  <summary>  
         /// Gets or Sets the value to indicate whether the Button wait for Feedback or not 
         ///  </summary>  
         [DefaultValue(true), 
         Description( "Gets or Sets the value to indicate whether the Button wait for feedback or not ")] 
         public bool WaitFeedback 
         { 
             get { return _waitFeedback; } 
             set { _waitFeedback = value; } 
         }   
         protected override void OnClick(EventArgs e) 
         { 
             if (_waitFeedback) this.Enabled = false; 
             base.OnClick(e); 
             FeedbackEventArgs fe = new FeedbackEventArgs(); 
             fe.e = e; 
             fe.WaitFeedback = _waitFeedback; 
             if (OnFeedback != null) OnFeedback(this, fe); 
         } 
     }   
     public class FeedbackEventArgs 
     { 
         private bool _waitFeedback; 
         private EventArgs _e;   
         public FeedbackEventArgs() { }   
         public bool WaitFeedback 
         { 
             get { return _waitFeedback; } 
             set { _waitFeedback = value; } 
         }   
         public EventArgs e 
         { 
             get { return _e; } 
             set { _e = value; } 
         } 
     } 
 }     
 Test Code:   
 private void wrapperButton1_Click(object sender, EventArgs e) 
         { 
             wrapperButton1.OnFeedback += new WrapperButton.FeedbackEventHandler(wrapperButton1_OnFeedback); 
             MessageBox.Show( "Testing... "); 
         }   
         void wrapperButton1_OnFeedback(object sender, FeedbackEventArgs e) 
         { 
             wrapperButton1.Enabled = true; 
         } 
------解决方案--------------------Test Code作下修改:   
 void wrapperButton1_OnFeedback(object sender, FeedbackEventArgs e) 
         { 
             if (e.WaitFeedback) 
             { 
                 wrapperButton1.Enabled = true; 
             } 
         }
------解决方案--------------------基本同意LS...   
 如果只是实现这样的简单功能,不用那么多代码的...   
 protected override void OnClick(EventArgs e) 
 { 
       if (_waitFeedback) {this.Enabled = false}; 
       base.OnClick(e); 
       if (_waitFeedback) {this.Enabled = true}; 
 }