当前位置:编程学习 > C#/ASP.NET >>

在子类中如何取到主窗体类中的数据

有二个窗体。也就是二个窗体类 form1 form2   
FORM1是主窗体   

C#里面没有指针。  如何在FORM2的窗体里取到主窗体中的比如TEXTBOX.text的数据

--------------------编程问答-------------------- form1.TextBox.Text --------------------编程问答-------------------- 可以通过属性传
from2.cs
public string text;
public string TextBoxText
{
  get
{
return text;
}
set
{
text=value;
}
}

from1.cs
from2 f2 =new from2();
f2.TextBoxtText = Textbox1.Text
f2.show();
--------------------编程问答--------------------

//第一个窗体
private void btnExit_Click(object sender, EventArgs e)
        {
            //创建第二个窗体的对象,把自己传进出
            Form1 fm = new Form1(this);
            fm.ShowDialog();
        }

//第二个窗体
public partial class Form1:Form
    {
        public Form1(MainForm main)
        {
            InitializeComponent();
            this.main = main;
        }
        //创建第一个窗体的对象
        private MainForm main;  
        private void Form1_Load(object sender, EventArgs e)
        {
            this.main打点调用
        } 
    }
--------------------编程问答-------------------- from2.cs
public string text;
public string TextBoxText
{
  get
{
return text;
}
set
{
text=value;
}
}

from1.cs
from2 f2 =new from2();
f2.TextBoxtText = Textbox1.Text
f2.show();

只能获取一个对象,我那样可以获得第一个窗体所有的对象 --------------------编程问答-------------------- 你先得把你想在form2中访问的form1成员改成public
然后在form1中
form2.Ower = this;
form2.show();

在form2中
form1 frm = (form1)this.Owner;
用frm就可以访问form1中的public成员 --------------------编程问答-------------------- 在FORM1中:
//显示模式对话框
Form2 f1=new Form1();
f1.showdialog(this);

//显示非模式对话框:
Form1 f1=new Form1()
f1.Owner=this;
f1.show();
在FORM2中:
//引用上一窗体:
Form1 f1=(Form1)this.Owner;
textBox1.Text=f1.textBox1.Text --------------------编程问答-------------------- public string TextBoxText 
换成 public from1 tempform
{}
不就可以了
引用 4 楼 helloqujian 的回复:
from2.cs 
public string text; 
public string TextBoxText 

  get 

return text; 

set 

text=value; 



from1.cs 
from2 f2 =new from2(); 
f2.TextBoxtText = Textbox1.Text 
f2.show(); 

只能获取一个对象,我那样可以获得第一个窗体所有的对象
--------------------编程问答-------------------- 给你两篇窗体通讯的文章 看看吧  
http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
http://blog.csdn.net/ChargeForward/archive/2008/10/04/3015858.aspx --------------------编程问答-------------------- 重写子类的构造函数.
public Form2(string __path)
{
     InitializeComponent();
     _path = __path;
     this.label1.Text = "_path";
} --------------------编程问答-------------------- 对楼上所有的回答者提问:

我看到这里传控制权,大概有两种方法,一种是 在需要接受控制权的窗体构造函数中创建需要控制权的对象
然后在构造的时候传this

另外中方法我不太熟悉,也没看的太明白~~

所以能不能在这里解释下 这两种方法的特点 和它们之间的不同点嘛? --------------------编程问答-------------------- 谢谢这么多好心人。。
--------------------编程问答-------------------- 在请教一下。在设计模式下。什么叫低耦合? --------------------编程问答-------------------- 用委托吧 --------------------编程问答--------------------

给FORM2类定义几个 共有成员 就可以 传过去。
FORM 也是类啊。 




补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,