c#,我想将form1中wpf textbox 多行的值传到form2的label中,但又不用static,,可以办到吗?

关于c#中子窗口调用父窗口中控件内容的问题_百度知道
关于c#中子窗口调用父窗口中控件内容的问题
例如做一个记事本的查找功能,点击查找会弹出一个查找的窗口。点击查找窗口中的查找按钮,应该在这个按钮的click事件中调用主窗口的textbox中的内容并操作主窗口textbox的内容。怎么实现???急求!!!!
我有更好的答案
按默认排序
首先你在Form2里面创建一个公开Form1的对象,然后在Form2里面写一个窗体加载事件,下面是代码:public Form1 form1;//这是创建的对象private void Form2_Load(object sender, EventArgs e)//窗体加载事件{txt_Two.Text = form1.txt_One.T//这里是把窗体Form1的textBox1的值给Form2的textBox1}Form2的设置搞定,然后把Form1的textBox1公开一下,在属性里面设置,属性叫Modifiers--&设置为public, 然后有一个按钮打开Form2,事件为:private void button1_Click(object sender, EventArgs e){Form2 form2 = new Form2();form2.form1 =//这里就是把当前窗口的所有东西传递过去。 楼下的兄弟说的窗口间数据传递。就是这里拉。form2.Show();}
有个简单的方法:(1)先把你要Modifiers的值设置为public;(2)再在子窗体中声明public static Form1 form1 =(父窗体为Form1),这样就可以通过Form1.form1.label1.Text
=&&(以控件label1为例)
来为你想改变的控件的属性值了;
这种做法一般是通过属性来实现的,将窗体对象引用传递给查找窗口,然后操作之
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C#中两个窗体之间值传递,form1中textbox1中的值传到form2中textbox1中来怎么办?
[问题点数:20分,结帖人hxd208]
C#中两个窗体之间值传递,form1中textbox1中的值传到form2中textbox1中来怎么办?
[问题点数:20分,结帖人hxd208]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2014年4月 扩充话题大版内专家分月排行榜第三
2008年8月 .NET技术大版内专家分月排行榜第一
2008年6月 .NET技术大版内专家分月排行榜第二
2004年4月 硬件使用大版内专家分月排行榜第二
2009年8月 .NET技术大版内专家分月排行榜第三
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
本帖子已过去太久远了,不再提供回复功能。经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
请扫描分享到朋友圈c#在两个窗口间传递数值_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
15页3下载券2页2下载券1页免费3页¥2.003页¥2.00 1页免费4页免费2页免费39页1下载券1页1下载券
喜欢此文档的还喜欢10页免费13页1下载券15页免费20页1下载券59页免费
c#在两个窗口间传递数值|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:2.88KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢c#窗体间传值的方法介绍
最近,被C#窗体间传值的问题弄的有点头晕,还好最后还是有惊无险的解决;
下面介绍一下,我自己解决办法,可能与其他方法一下,呵呵,这个就这能怪自己发现的迟了!
我在C 中,窗体间进行传值,常用方法是定义一系列的全局变量,然后通过窗口间调用全局变量,进行传值。
结果,无用质疑是OK的,但是问题是,定义的全局量的个数、类型不容易确定,所以这个就是问题,也是不容易推广使用的。
下面介绍C#中的办法:
FORM1(父窗口)
FORM2(子窗口)
一般的办法:是通过FORM1的一个控件,打开FORM2,在此期间FORM1将值传给FORM2,而FORM2中的相关操作,会改变一些数据,接下来是,FORM2关闭,将修改的参数,传回FORM1中,过程是比较容易理解的,但是具体的操作语言,就有点麻烦了,下面介绍具体的代码:
在form1的类中加入一个属性:Tempstr
public string TempS
&&&&set&{&&&
下面是显示子窗体的代码
Form form2=new Form();
form2.showDialog(this);
form2.dispose();
Form form2=new Form();
form2.owner=
form2.showDialog();
form2.dispose();
一般使用后者代码跟清楚,更容易理解!
接下来是在Form2中添加Form1;
Form1 formmain;
在这里this的值是Form2;
formmain=(Form1)this.
这样在子窗口里就可以接受到主窗口的传值了
如果你需要将子窗口的值返回主窗口,同样要加入一个属性;
public string TempStr2;
&&&&set&{&&&
具体方法同上诉的方法相似,下面是一些比较好理解的代码:
C#窗体间传值的几种方法
调用窗体(父):Form1,被调用窗体(子):Form2
方法1: 所有权法
//需要有一个公共的刷新方法
public void Refresh_Method()
//在调用Form2时,要把Form2的所有者设为Form1
Form2 f2 = new Form2() ;
f2.Owner =
f2.ShowDialog() ;
//在需要对其调用者(父)刷新时
Form1 f1 ;
f1 = (Form1)this.O
f1.Refresh_Method() ;
方法2:自身传递法
//需要有一个公共的刷新方法
public void Refresh_Method()
Form2 f2 = new Form2() ;
f2.ShowDialog(this) ;
private Form1 p_f1;
public Form2(Form1 f1)
InitializeComponent();
p_f1 = f1;
p_f1.Refresh_Method() ;
方法3:属性法
//需要有一个公共的刷新方法
public void Refresh_Method()
Form2 f2 = new Form2() ;
f2.Show() ;
private Form1 p_f1;
public Form1 P_F1
get{return p_f1;}
set{p_f1 =}
p_f1.Refresh_Method() ;
方法4:委托法
//声明一个委托
public delegate void DisplayUpdate();
//需要有一个公共的刷新方法
public void Refresh_Method()
Form2 f2 = new Form2() ;
f2.ShowUpdate = new DisplayUpdate(Refresh_Method) ;
f2.Show() ;
//声明事件
public event DisplayUpdate ShowU
//刷新时,放在需要执行刷新的事件里
ShowUpdate();
Form1中放一个Label1,一个Button1,Form1为主窗口,当点击Button1时,执行:
Form2 f2 = new Form2();
f2.ShowDialog(this);
Form2中放一个TextBox1,一个Button1,当点击Button1时执行:
Form1 f1 = (Form1)this.O
f1.Label1.Text = this.TextBox1.T
注意:Form1中的label1要设为public
用C#实现两个WinForm间的传值
实现的思路:
从Form1传递到Form2: 2个窗体即两个类,两个窗体间的数据传送,可以采用构造函数来实现。
从Form2返回到Form1,并传递数据:实例化Form2后,打f2用ShowDialog()方法,然后等待f2关闭时再回传数据到Form1。
实现步骤及代码:
1:新建两个窗口: Form1,Form2;
2:打开Form2,添加一个textBox:textBox1;添加一个Button:button1;然后添加一个构造函数:
//定义一个变量,用来传值。
public string returnV
public Form2(string txtValue)
&&&&&&&&&&&
InitializeComponent();
&&&&&&&&&&&
this.textBox1.Text = txtV
然后在button1的单击事件中添加如下代码:
private void button1_Click(object sender, EventArgs e)
&&&&&&&&&&&
returnValue = this.textBox1.T
&&&&&&&&&&&
this.Close();
3:Form1中添加一个textBox:textBox1;添加一个Button:button1;然后在button1的单击事件中添加如下代码:
private void button1_Click(object sender, EventArgs e)
&&&&&&&&&&&
string txtValue = this.textBox1.T
&&&&&&&&&&&
Form2 f2 = new Form2(txtValue);
&&&&&&&&&&&
f2.ShowDialog();
&&&&&&&&&&&
this.textBox1.Text = f2.returnV
Form1 中 (父窗口:)
public class Form1 : System.Windows.Forms.Form
private System.Windows.Forms.Button btnO
public System.Windows.Forms.TextBox txtC
//注意是public
[STAThread]
static void Main()
Application.Run(new Form1());
&&& private
void btnOpen_Click(object sender, System.EventArgs e)
Form2 frm=new Form2(this);
frm.ShowDialog();
Form2中(子窗口)
public class Form2 :
System.Windows.Forms.Form
&&&&&&&&&&
private System.Windows.Forms.Button button1;
&&&&&&&&&&
private System.Windows.Forms.TextBox txtV
&&&&&&&&&&
private Form _parentForm=
public Form2()
&&&&&&&&&&&
InitializeComponent();
public Form2(Form parentForm)
InitializeComponent();
this._parentForm =parentF
&&&&&&&&&&
//更新父窗口中文本框中的值!
private void button1_Click(object sender, System.EventArgs e)
&&&&&&&&&&
((Form1)_parentForm).txtContent.Text =this.txtValue .T
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 wpf textbox 多行 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信