您的位置:首页 > 编程语言 > C#

C#跨窗体相互调用对方函数

2013-11-12 12:50 176 查看
对象对象程序设计,为跨窗体调用提供了良药:即构造函数。只要将某一个窗体对象以参数形式传入到另一个窗体对象的构造函数,即可实现。

一、实际案例需求





图1 Form1窗体设计

 





图2 Form2窗体设计

 

如图1、图2,现在要求图1按下按键,自己锁住,弹出图2;然后图2按下按键,自己关闭,解放图1的按键。

 

二、代码实现

Form1.cs

namespace Form_Invoke 



    public partial class Form1 : Form 

    { 

        public Form1() 

        { 

            InitializeComponent(); 

        }

        private void button1_Click(object sender, EventArgs e) 

        { 

            Set_Button1_Enable_Attribute(false); 

            Form2 form2 = new Form2(this); //
关键句,构造Form2时,将Form1作为parent传进去 

            form2.Show(); 

        }

        public void Set_Button1_Enable_Attribute(bool isEnable) 

        { 

            this.button1.Enabled = isEnable; 

        } 

    }

Form2.cs

public partial class Form2 : Form 



    public Form1 parent;

    public Form2() 

    { 

        InitializeComponent(); 

    }

    public Form2(Form1 parent) 

    { 

        InitializeComponent(); 

        this.parent = parent; 

    }

    private void button1_Click(object sender, EventArgs e) 

    {

        /* 在Form2中,通过parent调用自己的函数,实现跨窗体调用 */ 

        this.parent.Set_Button1_Enable_Attribute(true); 

        this.Close(); 

    }

}

 

三、运行效果





图 打开Form1

 





图 按下Form1的按键

 





图 按下Form2的按键

原文地址:http://blog.chinaunix.net/uid-25498312-id-3435633.html

原文地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息