c# – 在WPF表单之间传递数据
发布时间:2020-12-16 00:06:42 所属栏目:百科 来源:网络整理
导读:form1有一个按钮btnInvoke,它调用form2. form2包含一个文本框和一个按钮btn2. 用户必须在文本框中输入数据并按btn2. 单击btn2时,form2必须将文本框数据发送到form1. 我试过传递构造函数,但我无法启动form1的新实例. 我该怎么办? 解决方法 您可以使用两种方
form1有一个按钮btnInvoke,它调用form2. form2包含一个文本框和一个按钮btn2.
用户必须在文本框中输入数据并按btn2. 单击btn2时,form2必须将文本框数据发送到form1. 我试过传递构造函数,但我无法启动form1的新实例. 我该怎么办? 解决方法
您可以使用两种方法.第一个是使用ShowDialog和一个公共方法,然后测试DialogResult是否为真,然后从方法中读取值.
即 if (newWindow.ShowDialog() == true) this.Title = newWindow.myText(); 第二种方法是创建一个CustomEvent并在创建窗口中订阅它,就像这样. MainWindow.xaml.cs public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void button1_Click(object sender,RoutedEventArgs e) { Window1 newWindow = new Window1(); newWindow.RaiseCustomEvent += new EventHandler<CustomEventArgs>(newWindow_RaiseCustomEvent); newWindow.Show(); } void newWindow_RaiseCustomEvent(object sender,CustomEventArgs e) { this.Title = e.Message; } } Window1.xaml.cs public partial class Window1 : Window { public event EventHandler<CustomEventArgs> RaiseCustomEvent; public Window1() { InitializeComponent(); } public string myText() { return textBox1.Text; } private void button1_Click(object sender,RoutedEventArgs e) { RaiseCustomEvent(this,new CustomEventArgs(textBox1.Text)); } } public class CustomEventArgs : EventArgs { public CustomEventArgs(string s) { msg = s; } private string msg; public string Message { get { return msg; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |