winform 子父窗体操作!委托解决子集操作父级。

namespace WindowsFormsApplication1

{

    public delegate void Handled1();//定义一个委托

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        //需要子窗体执行的方法

        private void ShowForm()

        {

            MessageBox.Show("Test");

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

            //创建子窗体,并将需要执行的方法传递到子窗体去

            Form2 f = new Form2(ShowForm);

            f.Show();

        }

    }

}

 子窗体代码

namespace WindowsFormsApplication1

{

     

    public partial class Form2 : Form

    {

        Handled1 _hand = null;//使用在父窗体中定义的委托

         

        //将委托定义为子窗体的构造器参数

        public Form2(Handled1 hand)

        {

            InitializeComponent();

            _hand = hand;

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            _hand();//调用父窗体中的方法

        }

    }

}

 使用委托相对要麻烦一点,你想简单的话,也可以直接将父窗体传递到子窗体去,像这样改下就行了

 Form _form = null;

        //将基类定义为子窗体的构造器参数

        public Form2(Form from)

        {

            InitializeComponent();

            _form = from;

        }

        //调用父窗体的方法就变成这样

        _form.ShowForm();

 当然父窗体中创建子窗体时,就应该这样了

 //创建子窗体,并将父窗体传递到子窗体去

            Form2 f = new Form2(this);

            f.Show();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值