class A
{
   //Form1 为已建窗体,中有一按钮button1
   private Form1 alarmForm;
   public Form1 FalarmForm
   {
      get { return alarmForm; }
      set { alarmForm = value; }
   }
   
   //初始化
   public A()
   {
      FalarmForm = new Form1();
      FalarmForm.Button1.Click += new System.EventHandler(Eclick);
   }   private void Eclick(object sender, EventArgs e)
   {
          
   }
}以上为本人动态绑定事件的代码,但总感觉使用控件公共(button1 为 public)的这种做法有缺陷,不知是否还有其余的好地方法嘛?请不吝赐教。

解决方案 »

  1.   

    把Button1.Click 事件封装到Form1里.
    Form1:
    public event ButtoncClickEventHandler Button1Click;
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                Button1Click(sender, e);
            }
            public delegate void ButtoncClickEventHandler(object sender, EventArgs e);
    class Class1
        {
            private Form1 alarmForm;
            public Form1 FalarmForm
            {
                get { return alarmForm; }
                set { alarmForm = value; }
            }         Class1()
            {
                FalarmForm = new Form1();
                FalarmForm.Button1Click += new Form1.ButtoncClickEventHandler(FalarmForm_Button1Click);        }        void FalarmForm_Button1Click(object sender, EventArgs e)
            {
                
            }        
        }