【转】
有很多种办法,例如在母窗体设置静态变量,子窗体修改这个静态变量的值,例如在ShowDialog结束之后得到自窗体实例的某个属性等等.你可以给子窗体注册一个自定义事件,在点确定的时候触发它,然后在主窗体里接收.有的地方需要具体设计一下你窗体的属性事件什么的.具体的不说了,相信你可以理解.
给你个具体的,在子窗体里写个属性()
private string m_Text;
public string TextBoxText
{
get{return m_Text;}
set{m_Text = value;}
}
private void button1_Click(object sender, System.EventArgs e)
{
//string str=this.textBox1.Text;
//改成
this.TextBoxText = this.TextBox1.Text;
this.DialogResult = DialogResult.Yes;
this.Close();
//Form1 obj=new Form1(str);
}
在你的主窗体的触发事件里面写
Form2 f= new Form2();
if(f.ShowDialog == DialogResult.Yes)
{
this.listBox1.Items.Add(f.TextBoxText);
}
1.可以用public 声明一个变量,
2.利用构造函数。
主窗体:mainform
子窗体:childform
public childform(DataTable dt,mainform mainform)
{
InitializeComponent();
f1 = form1;
Dt = dt;
dt=null;
}
主窗体:mainform
new frmSpecialtyPer(dt,this).Show();
http://zhidao.baidu.com/question/50662625.html
答过N遍
1f
据说还能写注册表保存 写配置文件保存
在一个窗体show另一个窗体show(this),showdialog(this)
另一个窗体的owner就是上一个窗体,也可以通过属性,构造函数传值,或者全局静态变量,就是在program中定义static变量,还有就是一个窗体可以通过在他上面show的窗体的showdialog(this)方法的返回值做操作,返回值是dialogresult枚举,变量或属性访问修饰符要写对,要不也访问不了
就是说只要你能找到你实例的那个窗体的实体就可以访问他里面的所有可访问目标。