想请教各位高手:如何使用委托修改窗体间的属性(我会用别的方法实现,现在就想掌握委托方法)
在Form1中使得点击button1后,弹出form2,并且button1.enabled=false;怎么样在关闭Form2时候,使得Button1的Enabled变为true;{高手最好能给源代码解释}
如果您有时间,可以用通俗易懂的话或者例子讲解委托使用及原理。
谢谢了!

解决方案 »

  1.   


    namespace Demo
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.CloseHandle += CloseHandler;
                f2.Show();
                button1.Enabled = false;
            }        private void CloseHandler(object sender, EventArgs e)
            {
                button1.Enabled = true;
            }
        }
    }namespace Demo
    {
        public partial class Form2 : Form
        {
            public event EventHandler CloseHandle;        public Form2()
            {
                InitializeComponent();            FormClosed += new FormClosedEventHandler(Form2_FormClosed);
            }        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
            {
                OnCloseHandle(new EventArgs());
            }        private void OnCloseHandle(EventArgs e)
            {
                EventHandler temp = CloseHandle;
                if (temp != null)
                    temp(this,e);
            }
        }
    }
      

  2.   

    form2 在关闭事件中写上 DialogResult=DialogResult.Ok;在Form1中点击button1写上form2 f=new form2();
    if(f.DialogResult==DialogResult.Ok)
    {
    button1.enabled=true;
    }
      

  3.   

    大侠们啊,我想的是委托,好像有delegate那种啊
      

  4.   


    呵呵 个人建议msdn是你最好的选择
    楼主连委托是什么都不知道 
    上面有人写的例子是对的 用到了委托
    只是你没有理解而已 哈哈