wpf弹出窗体的问题

hglei 2010-12-20 05:21:56
场景:
1 。 主窗体 :创建子窗体对象 ,然后用 子窗体的Show方法将子窗体显示出来

private void button1_Click(object sender, RoutedEventArgs e)
{
Window2 w = new Window2();
w.Owner = this;
w.Show();
}

2 。 子窗体: 创建一个窗体, 然后用ShowDialog方法显示出来
 
private void button1_Click(object sender, RoutedEventArgs e)
{
Window3 w = new Window3();
w.Owner = this;
w.ShowDialog();
}

3 。 将窗体3 关闭;
4。 将窗体2 关闭;
5 。 主窗体未被激活 ,其他程序被激活显示在上层。

如果不执行2,3步骤 ,结果是 窗体2关闭时 主窗体激活处于系统上层。

请问为什么 子窗体关闭时主窗体为什么没有被激活
...全文
283 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hglei 2010-12-21
  • 打赏
  • 举报
回复
必须都用 ShowDialog ?
  • 打赏
  • 举报
回复
因为在showDialog的时候,WINDOWS API干了这么一件事,就是将窗体的z-index的最靠前赋值给了window2,也就是将你最开始的主窗体的z-index的值改变了。所以。。。

但是,如果
Window2 w = new Window2();
w.Owner = this;
w.Show();
也是用
showdialog(),则z-index会传回到主窗体,就不会出现你说的这个情况了。不信你可以试一试。
hglei 2010-12-20
  • 打赏
  • 举报
回复
窗体2可能有同时存在
linekery 2010-12-20
  • 打赏
  • 举报
回复
为什么不都用 w.ShowDialog();
hglei 2010-12-20
  • 打赏
  • 举报
回复
没人知道?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧