我有两个窗口:window1
和window2
。当我点击window1
中的按钮时,会显示window2
。
如何在不关闭window1
的情况下将焦点/控制权移至window2
?我正在使用VS 13
在Window1中:
private void go_Click(object sender, RoutedEventArgs e)
{
Window2 r = new Window2(s1);
r.ShowDialog();
}
在Window2中:
public partial class Window2 : Window
{
static string data;
public Window2(String a)
{
data=a;
InitializeComponent();
TextBox.Text = data;
}
}
答案 0 :(得分:0)
您可以在构建时将window1
的引用传递给window2
。
然后,从您的window2
,您可以在Activate
上调用window1
方法,使其再次显示前景:
window1.Activate();
请参阅此方法的MSDN documentation。
编辑:由于您使用ShowDialog
代替Show
(您在问题中没有提及此信息),事情就是有点不同:ShowDialog应该将窗口显示为modal dialog,因此当<{1}}打开时, 无法将焦点重新提交给window1
,必须先关闭window2
。
我不确定您希望实现的行为,但您应该尝试使用window2
代替Show
,然后使用ShowDialog
方法如上所述。
答案 1 :(得分:0)
更改此
private void go_Click(object sender, RoutedEventArgs e)
{
Window2 r = new Window2(s1);
r.ShowDialog();
}
更改Window2
添加引用window1
像这样的东西
public partial class Window2:Window { 静态字符串数据; 静态窗口窗口1; public Window2(String a,Window parent) { 数据= A; 的InitializeComponent(); TextBox.Text = data; window1 = parent; } }
并将该方法更改为此
private void go_Click(object sender, RoutedEventArgs e)
{
Window2 r = new Window2(s1, this);
r.Show();
}
现在从Window2
调用此
window1.Activate();
来自任何方法