【问题标题】:Show "parent" form in a normal state在正常状态下显示“父”表单
【发布时间】:2011-05-09 03:14:05
【问题描述】:

当我执行这段代码时:

this.WindowState = FormWindowState.Minimized;
_fullscreenForm.Show();
_fullscreenForm.Focus();

我将当前窗口最小化,_fullscreenForm 也被最小化。正常状态下怎么显示?

更新

显然我已经尝试添加_fullscreenForm.WindowState = FormWindowState.Maximized;,但这不起作用。

更新 2

不,我们不能改变最小化当前形式和外观的顺序,因为在这些行之间会有一些工作,所以我们确实需要:

  1. 隐藏当前表单
  2. 做一些工作
  3. 显示另一个带有结果的表单

回答

表单出现在VS窗口后面,所以我们需要Activate()它。

【问题讨论】:

  • 你能发布一下这应该发生的事件吗? this_fullscreenForm 是什么关系。您还尝试将_fullscreenForm.WindowState 属性设置为FormWindowState.Normal 吗?你会得到什么,你想要得到什么。
  • @ja72:嗯,事件?我需要在调用我的代码后显示_fullscreenForm。我将_fullscreenForm 最小化(正如我在 Q 中所说的那样)。 “这和_fullscreenForm有什么关系”---它有多重要? _fullscreenForm 只是当前形式的私有属性。

标签: .net winforms


【解决方案1】:

在最小化当前表单之前尝试显示_fullscreenForm

_fullscreenForm.Show();
this.WindowState = FormWindowState.Minimized;
_fullscreenForm.WindowState = FormWindowState.Normal;
_fullscreenForm.Focus();

编辑:

使用您的原始代码,尝试

this.WindowState = FormWindowState.Minimized;
_fullscreenForm.Show();
_fullscreenForm.TopMost = true;
_fullscreenForm.Focus();

【讨论】:

  • 这段代码为我们提供了另一个工作流程:show - hide。但我严格按照我描述的顺序需要它:1)我们隐藏表单 2)我们做一些有用的工作 3)我们显示另一个带有结果的表单。
  • @zerkms 运行原始代码时,_fullscreenForm 在当前表单最小化后正常显示,但如果您运行了visual studion,则表单在其后面。在尝试之前尝试最小化 VS。
  • 我选择了Activate()。感谢您的宝贵时间。
【解决方案2】:

发生这种情况是因为窗口从最小化的程序加载新窗口也最小化。所以只需将_fullscreenFormWindowState 设置为MaximizedNormal,就在Show() 之后

【讨论】:

  • 我不需要它最大化,我需要它的正常大小。
  • 那我相信你是把它作为一个子表单打开的,然后不能单独最大化它。您必须将其从主窗体中分离出来。
  • 什么是“子窗体”?我可以用鼠标把它带回屏幕,点击任务栏。
猜你喜欢
  • 1970-01-01
  • 2013-01-04
  • 2012-03-30
  • 2011-08-17
  • 1970-01-01
  • 2023-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多