"委托" 窗体之间调用

来源:互联网 发布:南京大学网络本科报名 编辑:程序博客网 时间:2024/04/30 05:56

     本人不是专家,理解有限,理解不正确的地方请指正。欢迎批评指导

     我个人认为委托就是一个函数指针。

     使用方法分为3个步骤:

     下面以 子窗体 设置 父窗体 的 标题为例 (那么就应该是 子窗体 委托 父窗体 来修改窗体标题)

    

     在 子窗体内 的代码

    public partial class Form2 : Form
    {
        private delegate void DelegateSet(string PFromName); // 参数以及返回类型都与要绑定的函数相同(除泛型委托)
        Form1 f = null;
        public Form2(Form1 f1)
        {
            InitializeComponent();
            f = f1;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DelegateSet ds = new DelegateSet(f.SetFromTile);   //与父窗体的方法绑定
            ds("我是按钮1");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            DelegateSet ds = new DelegateSet(f.SetFromTile);
            ds("我是按钮2");
        }
    }

     父窗体中的代码

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();       
        }     
        public void SetFromTile(string PFromName)
        {
            this.Text = PFromName;           
        }

        private void 窗体2ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(this);
            f2.MdiParent = this;                   //父窗体被做为容器
            f2.Show();
        }
    }

 

原创粉丝点击