【WPF】窗体页面间传值总结
2017-06-20 11:37
106 查看
以下方法可以根据需求进行变更,
Demo1:子窗体返回值给主窗体
From1
private
void
button1_Click(object
sender, EventArgs
e)
{
Form2
frm = new
Form2();
//注册事件
frm.TransfEvent += frm_TransfEvent;
frm.ShowDialog();
}
//事件处理方法
void
frm_TransfEvent(string
value)
{
textBox1.Text = value;
}
Form2:
//声明委托 和 事件
public delegate
void
TransfDelegate(String
value);
public
event
TransfDelegate
TransfEvent;
private
void
button1_Click(object
sender, EventArgs
e)
{
TransfEvent(textBox1.Text);//触发事件
this.Close();
}
===================================================================================================================================
Demo2:主窗体通过触发事件传值给子窗体
Form1:
private
void
btn_Pass(object
sender, RoutedEventArgs
e){
Demo d =
new
Demo("想要传输的数据");
d.WindowStartupLocation =
WindowStartupLocation.CenterScreen;
//使窗口位置在最中心、
d.Owner =
this;
d.Show();
}
Form2:
public
Window2(string
str){
InitializeComponent();
show(str);
}
public
void
show(string
s)
{
textbox1.Text = s;
}
=============================================================================================
Demo3:主窗体传输给子窗体(实时)
参考例子:http://www.cnblogs.com/codeToUp/p/5371062.html
Form1
private
void
Button_Click(object
sender, RoutedEventArgs
e){
Win4
detail = new
Win4();
SendMsgEvent += detail.MainFormTxt;//为子窗体注册事件,在子窗体中事件处理代码中设置文本
detail.Owner
= this;
detail.Show();
}
private
void
ListBox_SelectionChanged(object
sender, SelectionChangedEventArgs
e)
{
SendMsgEvent(this,
new
Class1()
{ Text = "传输的值"
});
}
Form2
internal
void
MainFormTxtChanedDetailRequest(Object
sender, EventArgs
e)
{
Class1
arg = e as
Class1;
//取到主窗体的传来的文本
textbox2.Text= arg.Text;
}
Class1:
public
class
Class1
: EventArgs
{
public
string
Text { get;
set;
}
}
Demo1:子窗体返回值给主窗体
From1
private
void
button1_Click(object
sender, EventArgs
e)
{
Form2
frm = new
Form2();
//注册事件
frm.TransfEvent += frm_TransfEvent;
frm.ShowDialog();
}
//事件处理方法
void
frm_TransfEvent(string
value)
{
textBox1.Text = value;
}
Form2:
//声明委托 和 事件
public delegate
void
TransfDelegate(String
value);
public
event
TransfDelegate
TransfEvent;
private
void
button1_Click(object
sender, EventArgs
e)
{
TransfEvent(textBox1.Text);//触发事件
this.Close();
}
===================================================================================================================================
Demo2:主窗体通过触发事件传值给子窗体
Form1:
private
void
btn_Pass(object
sender, RoutedEventArgs
e){
Demo d =
new
Demo("想要传输的数据");
d.WindowStartupLocation =
WindowStartupLocation.CenterScreen;
//使窗口位置在最中心、
d.Owner =
this;
d.Show();
}
Form2:
public
Window2(string
str){
InitializeComponent();
show(str);
}
public
void
show(string
s)
{
textbox1.Text = s;
}
=============================================================================================
Demo3:主窗体传输给子窗体(实时)
参考例子:http://www.cnblogs.com/codeToUp/p/5371062.html
Form1
private
void
Button_Click(object
sender, RoutedEventArgs
e){
Win4
detail = new
Win4();
SendMsgEvent += detail.MainFormTxt;//为子窗体注册事件,在子窗体中事件处理代码中设置文本
detail.Owner
= this;
detail.Show();
}
private
void
ListBox_SelectionChanged(object
sender, SelectionChangedEventArgs
e)
{
SendMsgEvent(this,
new
Class1()
{ Text = "传输的值"
});
}
Form2
internal
void
MainFormTxtChanedDetailRequest(Object
sender, EventArgs
e)
{
Class1
arg = e as
Class1;
//取到主窗体的传来的文本
textbox2.Text= arg.Text;
}
Class1:
public
class
Class1
: EventArgs
{
public
string
Text { get;
set;
}
}
相关文章推荐
- 项目总结[3]--浅谈窗体间传值
- WinForm开发,窗体显示和窗体传值相关知识总结
- WinForm开发,窗体显示和窗体传值相关知识总结 (转)
- C# 窗体间传值总结
- WinForm开发,窗体显示和窗体传值相关知识总结
- 关于jsp页面之间传值的中文乱码总结
- [解决]XNA游戏程序启动页面改为WPF窗体所出现的错误
- WinForm开发,窗体显示和窗体传值相关知识总结
- WinForm中窗体中的页面传值
- WinForm开发,窗体显示和窗体传值相关知识总结【转载】
- [转]WinForm开发,窗体显示和窗体传值相关知识总结
- 【总结】子窗体传值到父窗体的方法
- WinForm开发,窗体显示和窗体传值相关知识总结
- WinForm开发,窗体显示和窗体传值相关知识总结
- WinForm开发,窗体显示和窗体传值相关知识总结
- ASP.NET页面传值的几种方式【总结收集】
- 关于jsp页面之间传值的中文乱码总结
- WinForm开发,窗体显示和窗体传值相关知识总结(转)
- WinForm开发,窗体显示和窗体传值相关知识总结(转)
- 【转】WinForm开发,窗体显示和窗体传值相关知识总结