求助,关于窗体间传递参数 1)有一个父窗体MainForm,两个子窗体Form1和Form2,Form1有一个textbox1控件,Form2有一个button1的控件,Form1已经打开,现打开Form2,点击Form2中的button1,然后Form1被击活(不生成新的实例),且Form1中的textbox1被赋值“123”。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 winform间传值public partial class Form1 : Form { private void button1_Click(object sender, EventArgs e) { Form2 frm2 = new Form2(); frm2.Show(this); } } public partial class Form2 : Form { private void button1_Click(object sender, EventArgs e) { Form1 frm1 = (Form1)this.Owner; ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text; this.Close(); } } 再说明一下,我这两个子窗体Form1和Form2都是通过父窗体MainForm打开的,所以楼上的方法可能实现不了我想要的功能 二楼的方法就可以。frm2.Show(this); 看上面代码的重点。这个问题,你在网上一搜一堆,楼主。通过类的构造函数传值。 感谢楼上给我的实例,但这不是我想要的我的情况如下:我这两个Form1和Form2都是由父窗体MainForm打开的public partial class MainForm : Form { private void button1_Click(object sender, EventArgs e) { Form1 frm1 = new Form1(); frm1.MdiParent=this; frm.Show(); } private void button1_Click(object sender, EventArgs e) { Form2 frm2 = new Form2(); frm2.MdiParent=this; frm.Show(); } }然后Form2把Form1击活,并让Form1中的textbox1显示需要的值。所以跟本无法在Form1中用Form2 frm2 = new Form2(); frm2.Show(this); 提供一个思路,不知道是否可行点击Form2的button1时寻找MainForm的所有子窗体,继而找到Form1,然后再激活Form1并给TextBox赋值 窗体间的传值方式:1 构造参数/委托传值.通常这是最常见的方式,FORM2里面写个属性,然后把FORM1的对象赋给这个属性.然后在FROM2里面很自在的使用FORM1对象.从而得到FORM1里面设置的所有东东.FORM2里面定义委托和事件,在FORM1里面绑定此事件的处理程序.然后在FORM2里面触发此事件,既可把数据顺利通过参数传给FORM1.2 静态类这个貌似是最简单的方法,创建一个静态类,把公用的东东都放在此类的静态属性中,使用者取之既可3 应用程序进程( AppDomain)这个才是最简单的处理方式,搞的和SESSION差不多了.FORM1:AppDomain.CurrentDomain.SetData( "XXX ", XXXX);FROM2:AppDomain.CurrentDomain.GetData( "XXX "); 激活可以实现,但就算我把textbox设成Public都不能直接赋值,必需创建一个新的实例,这又不能实现只打开一个窗体的要求 要求: 主窗体一个文本框,然后从窗体一个label , 文本框输入文字,从窗体显示出来在label上.主从窗体互相通信的话,从窗体要显示主窗体的信息,则从窗体必须有主窗体的实例. 用主窗体在从窗体的实例调用主窗体写好的一个方法, 例如 public string getMsg()返回的值来赋给label 即可. label.Text = mainFrm.getMsg();注意: 在主窗体必须通过按钮将主窗体的实例传给从窗体. otfs = new otherFrm( this ); SQL语句,中文匹配问题 C# out参数 传值是在函数退出还是在函数执行时? 新手请教:线程类问题 请看题 请教一个简单问题:关于动态链接库的调用 结构提问题(急) 用GDI+处理数码照片(文件很大)老是会出现Out of memory. 有什么办法? 冰天雪地赤身跪求解法 关于单元测试 请教,如何做像C#设计器中“属性”那样的控件? 在调用 SubmitChanges 期间不能执行此操作 mssql2000 sp4 全文索引搜索不到内容
public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);
}
} public partial class Form2 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;
this.Close();
}
}
我的情况如下:
我这两个Form1和Form2都是由父窗体MainForm打开的
public partial class MainForm : Form
{
private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = new Form1();
frm1.MdiParent=this;
frm.Show();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.MdiParent=this;
frm.Show();
}
}
然后Form2把Form1击活,并让Form1中的textbox1显示需要的值。
所以跟本无法在Form1中用
Form2 frm2 = new Form2();
frm2.Show(this);
点击Form2的button1时寻找MainForm的所有子窗体,继而找到Form1,然后再激活Form1并给TextBox赋值
2 静态类这个貌似是最简单的方法,创建一个静态类,把公用的东东都放在此类的静态属性中,使用者取之既可3 应用程序进程( AppDomain)这个才是最简单的处理方式,搞的和SESSION差不多了.
FORM1:
AppDomain.CurrentDomain.SetData( "XXX ", XXXX);FROM2:
AppDomain.CurrentDomain.GetData( "XXX ");
激活可以实现,但就算我把textbox设成Public都不能直接赋值,必需创建一个新的实例,这又不能实现只打开一个窗体的要求