我想在窗口B的某个按钮被按下后,即向窗口A的文本框txtA内写一个字符串,请问窗口B的代码该如何写呢?
我用frmA.ActiveForm.txtA,却发现txtA不存在,请教高手!

解决方案 »

  1.   

    改成public txtA还是不行,再请教!
      

  2.   

    "我用frmA.ActiveForm.txtA,却发现txtA不存在,请教高手!"
    你这个frmA是什么啊?是你实例化后赋值的窗口A类型的变量吗?
    如果窗口B是在窗口A中创建的,当然可以操作了,否则需要穿参或者委托操作了。
      

  3.   


    CON-如何在子窗体(被调用者)中实现对其父窗体(调用者)的刷新呢?
    网络上有几种方法,先总结如下:
    调用窗体(父):Form1,被调用窗体(子):Form2
    方法1: 所有权法
    //Form1:
    //需要有一个公共的刷新方法
    public void Refresh_Method()
    {
    //...
    }
    //在调用Form2时,要把Form2的所有者设为Form1
    Form2 f2 = new Form2() ;
    f2.Owner = this;
    f2.ShowDialog() ;
    //Form2:
    //在需要对其调用者(父)刷新时
    Form1 f1 ;
    f1 = (Form1)this.Owner;
    f1.Refresh_Method() ;
    方法2:自身传递法
    //Form1:
    //需要有一个公共的刷新方法
    public void Refresh_Method()
    {
    //...
    }
    Form2 f2 = new Form2() ;
    f2.ShowDialog(this) ;
    //Form2:
    private Form1 p_f1;
    public Form2(Form1 f1)
    {
    InitializeComponent();
    p_f1 = f1;
    }
    //刷新时
    p_f1.Refresh_Method() ;
    方法3:属性法
    //Form1:
    //需要有一个公共的刷新方法
    public void Refresh_Method()
    {
    //...
    }
    //调用时
    Form2 f2 = new Form2() ;
    f2.P_F1 = this;
    f2.Show() ;//Form2:
    private Form1 p_f1;
    public Form1 P_F1
    {
    get{return p_f1;}
    set{p_f1 = value;}
    }
    //刷新时
    p_f1.Refresh_Method() ;
    方法4:委托法
    //声明一个委托
    public delegate void DisplayUpdate();
    //Form1:
    //需要有一个公共的刷新方法
    public void Refresh_Method()
    {
    //...
    }
    //调用时
    Form2 f2 = new Form2() ;
    f2.ShowUpdate += new DisplayUpdate(Refresh_Method) ;
    f2.Show() ;
    //Form2:
    //声明事件
    public event DisplayUpdate ShowUpdate;
    //刷新时,放在需要执行刷新的事件里
    ShowUpdate();
      

  4.   

    在A窗体中定义一个public 的string 变量,将txtA的值赋给该变量,
    再在B窗体中访问
      

  5.   

    方法一:
    在B窗口设置一个ATextBox属性A窗口打开B窗口:
    BForm frm = new BForm ();
    frm.ATextBox = this.textBox1;
    frm.ShowDialog();B窗口操作后,你直接在B窗口中设置ATextBox .Text="abc";方法二:
    观察者模式,请参考书
    http://blog.csdn.net/flygoldfish
      

  6.   

    用最简单的,申明public字符串变量传过去!
      

  7.   

    最简单方法:
    定义窗体属性
    比如:
    f1调用f2
    在f2中定义访问器如下:
    public ControlType Name
    {
     set{ControlName = value;}
     get{return ControlName;}
    }
    在f1中只要实例化f2
    然后f2.Name.属性或方法名
    _________________________
    ok
    简单实用