请问怎么样从A窗体点击一个按钮,然后B窗体的this.text属性值改变??用最简单的方法。。谢谢。

解决方案 »

  1.   

    你得先获得B窗体的对象,方法有很多:比如你可以在创建B窗体的时候把B窗体的对象保存在一个全局静态变量中,那么你随时可以调用这个变量操作。static class allform
    {
        public static Form formb;
    }//在某个操作中打开B窗体
    allform.formb = new Form1();
    allform.formb.Show();//A窗体中是使用B窗体
    allform.formb.Text = "";
      

  2.   

    假设你要在form1中点击按钮button1改变form2的标题,form1中的代码为:public partial class Form1 : Form
        {
            Form2 frm2;
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
     
                    frm2 = new Form2();
                    frm2.text="设定你想要的!!";
                    frm2.Show();
            }
        }
      

  3.   

    new肯定是不行的 new的话生成的新的窗体中的内容是初始化的 原来的信息就没有了
    这样可以取到已经打开的窗体的句柄Application.OpenForms["Form1"].Text="Hello";
    // 这里的“Form1”就是你想要的那个已打开(包括隐藏的)窗体的Name。
      

  4.   

    1:吧B窗体对象传递给A,这样A就可以完全控制B了2:A中定义一个event
    public delegate void ClickMethod();
    public event ClickMethod selfClickEvent;protected virtual void OnselfClick(EventArgs e)
    {
      if(selfClickEvent!=null)
        selfClickEvent();
    }并在A的button_click中触发自定义事件:OnSelfClick()然后在B中注册这个事件,并绑定方法
    objeceA.selfClickEvent += delegate{this.text="11111111111"};
      

  5.   

    贴个例子出来: 
    页面1 
    public TextBox MyTexBox
            {
                get
                {
                    return this.textBox1;
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                Form2 form2 = new Form2(this);
                form2.Show();
            }页面2 
    Form1 form1 = null;
            public Form2(Form1 form)
            {
                InitializeComponent();
                form1 = form;
            }
            private void Form2_FormClosed(object sender, FormClosedEventArgs e)
            {
                form1.MyTexBox.Text = "123";
            }我作的是TextBox的例子,其它一样哦!