我的意思是怎么知道它被点击的??

解决方案 »

  1.   

    接受windows消息后调用回调函数
      

  2.   

    通过委托事件绑定。
    在InitializeComponent里面有代码
    this.button1.Click += new System.EventHandler(this.button1_Click);
    this.button1.Click :是事件源。
    this.button1_Click:事件处理程序。
    通过EventHandler委托(是个event类型的委托),联系起来。           
      

  3.   

    程序一直在监控着吧,Windows界面一有风吹草动,就将此消息传给后台代码,调用相关的函数.
      

  4.   

    处理你的基类型控件的click事件就行了
      

  5.   

    button.Click += new EventHandler(MethodA);
    Click 是在mouse tracker里面调用的(也就是接受windows消息后调用回调函数),
    而这个mouse tracher是在一个消息循环队列中一种永久循环
      

  6.   

    系统自定义的控件的事件都在.design.cs的文件里~
      

  7.   

    定义一个委托public delegate void MyObjectOnPropertyChanged(string propertyName,object oldValue,object newValue);
    在你的自定义控件里这么用 public class MyObject {
    private int _A=0;
    private string _B="";
    public event MyObjectOnPropertyChanged OnPropertyChanged;

    public int A {
    get {return _A;}
    set {
    if(value != _A){
    int t=_A;
    _A=value;
    if(OnPropertyChanged != null)
    OnPropertyChanged("A",t,value);
    }
    }
    }
    public string B {
    get {return _B;}
    set {
    if(value != _B){
    string t=_B;
    _B=value;
    if(OnPropertyChanged != null)
    OnPropertyChanged("B",t,value);
    }
    }
    }
    }
    调用测试 private void MainForm_Load(object sender, EventArgs e){
    MyObject o=new MyObject();
    o.OnPropertyChanged += new MyObjectOnPropertyChanged(MyObject_OnPropertyChanged);

    o.A=2;
    o.B="Test";
    }
    private void MyObject_OnPropertyChanged(string propertyName,object oldValue,object newValue){
    MessageBox.Show(
    String.Format("the property \"{0}\" has changed from \"{1}\" into \"{2}\" !",propertyName,oldValue,newValue)
    );
    }
      

  8.   

    操作系统发送点击消息到应用程序消息队列,应用程序分发消息到按钮窗口,按钮窗口在收到消息后判断Click回调函数被定义了(即所定义的委托被赋值了),就去响应OnClick函数,从而回调你的事件处理函数!!!