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

星空独行 2013-12-06 12:02:53
WPF中怎样使已经打开的窗体再次成为当前运行窗体?
...全文
3095 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cykinnn 2014-05-08
  • 打赏
  • 举报
回复
引用 11 楼 xxdddail 的回复:
将打开的窗体存入一个list中,然后要激活时,再从list中抽取,抽取出来后再Activate。如果抽取后发现不存在或者为空(可能是某些操作关闭或者异常引起的),这时可以重新开一个新窗,同时再存进去,以备下次再激活。
请问一下这个具体要怎么做? 比方说,我建立一个List, List<Windows> existWindows = new List<windows>(); 之后我怎么去得知,我要打开的窗体是不是在List列表中呢? 还请指教。
E次奥 2013-12-09
  • 打赏
  • 举报
回复
引用 11 楼 xxdddail 的回复:
将打开的窗体存入一个list中,然后要激活时,再从list中抽取,抽取出来后再Activate。如果抽取后发现不存在或者为空(可能是某些操作关闭或者异常引起的),这时可以重新开一个新窗,同时再存进去,以备下次再激活。
感觉这个可以尝试一下!
_学而时习之_ 2013-12-09
  • 打赏
  • 举报
回复
将打开的窗体存入一个list中,然后要激活时,再从list中抽取,抽取出来后再Activate。如果抽取后发现不存在或者为空(可能是某些操作关闭或者异常引起的),这时可以重新开一个新窗,同时再存进去,以备下次再激活。
saybookcat 2013-12-09
  • 打赏
  • 举报
回复
窗口未关闭时。 Window.WindowState = WindowState.Normal Window.Activate();
qldsrx 2013-12-08
  • 打赏
  • 举报
回复
你应该问,“WPF判断要打开的窗口已经存在,并使其得到焦点”,从你原来的问法,我只能以为你是已经得到了已经打开的窗口对象,但是不知为何那个窗体不能正常运行,你要我帮你让这个不能运行的窗体运行起来。 方法至少有2个: 一、自定义全局字典记录打开过的窗体对象。 二、窗体定义内部设置一个静态属性,以便得到自身对象,这类似于单例模式,判断自身对象是否为空,为空则新开窗口,不为空则直接设置当前焦点,关闭时将该属性设置为空。
宝_爸 2013-12-06
  • 打赏
  • 举报
回复
Window.Activate Method Activate Attempts to bring the window to the foreground and activates it.
qldsrx 2013-12-06
  • 打赏
  • 举报
回复
你是如何让它不成为当前运行窗体?反过来操作就不行了吗?
bu_ge 2013-12-06
  • 打赏
  • 举报
回复

Window frm = Application.Current.Windows[1];
frm.Focus();
星空独行 2013-12-06
  • 打赏
  • 举报
回复
灬浪子灬 2013-12-06
  • 打赏
  • 举报
回复
引用 5 楼 wtime101 的回复:
[quote=引用 4 楼 rui_china 的回复:] [quote=引用 楼主 wtime101 的回复:] WPF中怎样使已经打开的窗体再次成为当前运行窗体?
你是想这只的它置顶?TopMost=true,[/quote] 是已经打开过的窗体,不是重新开一个窗体[/quote] 那就重新打开啊!窗体关闭的时候也就在内存中释放了! 你怎么还想有效利用?
星空独行 2013-12-06
  • 打赏
  • 举报
回复
引用 4 楼 rui_china 的回复:
[quote=引用 楼主 wtime101 的回复:] WPF中怎样使已经打开的窗体再次成为当前运行窗体?
你是想这只的它置顶?TopMost=true,[/quote] 是已经打开过的窗体,不是重新开一个窗体
灬浪子灬 2013-12-06
  • 打赏
  • 举报
回复
引用 楼主 wtime101 的回复:
WPF中怎样使已经打开的窗体再次成为当前运行窗体?
你是想这只的它置顶?TopMost=true,
星空独行 2013-12-06
  • 打赏
  • 举报
回复
引用 1 楼 qldsrx 的回复:
你是如何让它不成为当前运行窗体?反过来操作就不行了吗?
让它失去焦点不就得了,主窗体通过点击按钮弹出子窗体后,再选择主窗体操作,那子窗体不就失去焦点了。 我现在的问题是当子窗体已经打开后,再点击主窗体按钮时直接让先前的调用先前已经打开的子窗体,而不是再重新打开一个相同的窗体。 已经实现了一半,现在就是没办法将已经打开的子窗体重新显示在最顶层,并获得焦点。

111,098

社区成员

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

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

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