请给我一些帮助。我做了很多研究,但没有找到适合我的答案。
考虑2种形式:MainWindow和Form2。 MainWindow包含一个文本框和一些显示信息的标签。 Form2还包含一个文本框,但旨在执行耗时的任务。在此form2中,我想将selectedItem的值(字符串)传递到MainWindow文本框,并在其上运行方法。
我可以通过加载或打开新的MainWindow来做到这一点,但是我不想这样做。可以同时(并且将同时)打开这两种表单。
请问我该怎么做? 让我知道我是否不准确。
答案 0 :(得分:0)
在MainWindow中:
private void button1_Click_1(object sender, EventArgs e)
{
var f = new Form2();
f.Owner = this;
f.ShowDialog(/*this*/);
}
在Form2中
(this.Owner as MainWindow).Text = textBox1.Text;
或致电:
(this.Owner as MainWindow).DoSomething();
答案 1 :(得分:0)
如果只有一个MainWindow,则只需建立指向MainWindow实例的静态链接即可。
MainWindow
public static MainWindow Instance { get; private set; }
public MainWindow()
{
InitializeComponent();
Instance = this;
}
Form2
if ( MainWindow.Instance != null )
MainWindow.Instance.textBox1.Text = "Hello";
当然,只有在同一线程中打开它们时,这才可能起作用。
答案 2 :(得分:0)
我终于找到了解决方法。
我遵循了一个视频教程,该教程完全适用于我的问题:https://www.youtube.com/watch?v=Tu07ubhxyfY
稍作调整后,效果很好。
非常感谢您的回答。