首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >窗口操作和权限控制

窗口操作和权限控制
EN

Stack Overflow用户
提问于 2010-06-05 18:00:07
回答 2查看 161关注 0票数 0

在我的应用程序中,只有两个窗口-- win_a & win_b,每个窗口上都有调用另一个窗口的按钮,例如单击btn1 of win_a将调用win_b,单击btn2 of win_b将显示win_a。

期望行为: 1.只同时发送一个对象实例,例如不允许同时运行两个win_a实例的情况。

当您单击调用已存在的窗口的按钮时,

  1. 只会将焦点更改为所需的窗口。如果您调用以前创建过的窗口,则
  2. 将创建该窗口的新实例。有两个正在运行的窗口。关闭其中一个窗口后,尝试将此窗口调用回,因此相关按钮将创建该窗口。

如何用WPF (XAML + C#)编写它。目前,我编写了一个版本,它可以为同一个窗口创建大量实例(没有实现的实例数量),但我只想看到同一个窗口的一个实例,就像我们在很多应用程序中看到的那样。

我的代码示例:

代码语言:javascript
复制
Window win = new Window();
win.Show();

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2010-06-05 21:05:04

首先,您需要对方窗口上的两个引用。在按钮点击,你需要检查一个参考。在win_a中说

代码语言:javascript
复制
//win_b is a member on Windows_a class
if(_win_b.IsVisible())
{
// set focus on it
}
else
{
//show win_b
}

为windows_b做同样的事情

票数 0
EN

Stack Overflow用户

发布于 2010-06-08 22:51:19

我建议采取一种不同的办法:

  1. 创建一个单例类,该类在创建窗口时包含元组List>
  2. 的列表,您可以检查窗口是否在集合中。

如果集合持有一个窗口,则可以将其设置为activ win.Activate(),否则可以创建它并添加对集合list.add(tuple(win,“windowA”))的引用

3.最后,在您可以添加到集合的窗口上,在关闭时需要从单件列表中移除窗口,您可以处理窗口的关闭事件。

我没有我在这里写的代码,但我希望它能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2981437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档