当前位置:编程学习 > C#/ASP.NET >>

WPF中怎样使已经打开的窗体再次成为当前运行窗体?

WPF中怎样使已经打开的窗体再次成为当前运行窗体? --------------------编程问答-------------------- 你是如何让它不成为当前运行窗体?反过来操作就不行了吗? --------------------编程问答-------------------- Window.Activate Method
Activate Attempts to bring the window to the foreground and activates it. --------------------编程问答--------------------
引用 1 楼 qldsrx 的回复:
你是如何让它不成为当前运行窗体?反过来操作就不行了吗?

  让它失去焦点不就得了,主窗体通过点击按钮弹出子窗体后,再选择主窗体操作,那子窗体不就失去焦点了。
  我现在的问题是当子窗体已经打开后,再点击主窗体按钮时直接让先前的调用先前已经打开的子窗体,而不是再重新打开一个相同的窗体。
  已经实现了一半,现在就是没办法将已经打开的子窗体重新显示在最顶层,并获得焦点。 --------------------编程问答--------------------
引用 楼主 wtime101 的回复:
WPF中怎样使已经打开的窗体再次成为当前运行窗体?

你是想这只的它置顶?TopMost=true, --------------------编程问答--------------------
引用 4 楼 rui_china 的回复:
Quote: 引用 楼主 wtime101 的回复:

WPF中怎样使已经打开的窗体再次成为当前运行窗体?

你是想这只的它置顶?TopMost=true,

是已经打开过的窗体,不是重新开一个窗体 --------------------编程问答--------------------
引用 5 楼 wtime101 的回复:
Quote: 引用 4 楼 rui_china 的回复:

Quote: 引用 楼主 wtime101 的回复:

WPF中怎样使已经打开的窗体再次成为当前运行窗体?

你是想这只的它置顶?TopMost=true,

是已经打开过的窗体,不是重新开一个窗体

那就重新打开啊!窗体关闭的时候也就在内存中释放了!
你怎么还想有效利用? --------------------编程问答-------------------- --------------------编程问答--------------------

Window frm = Application.Current.Windows[1];
frm.Focus();
--------------------编程问答-------------------- 你应该问,“WPF判断要打开的窗口已经存在,并使其得到焦点”,从你原来的问法,我只能以为你是已经得到了已经打开的窗口对象,但是不知为何那个窗体不能正常运行,你要我帮你让这个不能运行的窗体运行起来。

方法至少有2个:
一、自定义全局字典记录打开过的窗体对象。
二、窗体定义内部设置一个静态属性,以便得到自身对象,这类似于单例模式,判断自身对象是否为空,为空则新开窗口,不为空则直接设置当前焦点,关闭时将该属性设置为空。 --------------------编程问答-------------------- 窗口未关闭时。
Window.WindowState = WindowState.Normal
Window.Activate();
--------------------编程问答-------------------- 将打开的窗体存入一个list中,然后要激活时,再从list中抽取,抽取出来后再Activate。如果抽取后发现不存在或者为空(可能是某些操作关闭或者异常引起的),这时可以重新开一个新窗,同时再存进去,以备下次再激活。 --------------------编程问答--------------------
引用 11 楼 xxdddail 的回复:
将打开的窗体存入一个list中,然后要激活时,再从list中抽取,抽取出来后再Activate。如果抽取后发现不存在或者为空(可能是某些操作关闭或者异常引起的),这时可以重新开一个新窗,同时再存进去,以备下次再激活。


感觉这个可以尝试一下!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,