【问题标题】:C# set location of a minimized formC#设置最小化表单的位置
【发布时间】:2011-10-10 04:21:54
【问题描述】:

我正在用 C# 开发一个应用程序。我有一个主窗体,其中有一些按钮可以让用户在主窗体中启动一个新窗体。

当打开更多此类表单并且用户选择最小化一个时,它会回到所有打开的表单后面。因此,如果用户想要再次打开该表单,他必须关闭/最小化所有表单。(因为能够看到最小化的表单)

如何管理最小化的表单位置,使其在最小化后可见?我尝试过没有任何结果的东西:bringToFront、Activate、Focus 等。

我的主表单包含按钮和面板,因此表单在按钮下方的面板中打开。

【问题讨论】:

  • 我不确定有没有办法,你正在处理两个相互排斥的状态。当窗体最小化时,它是不可见的。您是说要设置窗体从最小化到非最小化时的位置吗?
  • 你能发布一些示例截图吗?我的第一个想法是您必须处理用户打开表单的方式。你到底是什么意思“开始一个新的表格进入主表格”你是什么意思?
  • 您的主表单设置为 mdi 表单吗?您是否正在跟踪您在窗口菜单等中打开的表单?如果窗体是最小化的,你想把它放在前面,你必须先把它设置为正常或最大化,然后再把它放在前面。
  • @RamHound 我发布了截图
  • 我已经看到了,这是由代码中的错误触发的行为。不确定是什么原因造成的,但它与防止表单窗口在最小化时隐藏的代码有关。无论如何,正确的方法是确保表单的 ShowInTaskbar 属性设置为 True,以便用户始终可以使用任务栏按钮返回到表单。不要试图利用这个漏洞,它无处可去。

标签: c# forms location position minimized


【解决方案1】:

你为什么不选择 MDI win-form 呢?我认为它们非常适合您想要实现的目标

http://msdn.microsoft.com/en-us/library/ms973874.aspx

【讨论】:

  • 我尝试使用 MDI win-form,但结果相同。看看我做的截图,也许你更明白我在做什么
【解决方案2】:

最后我确实设法自己解决了这个问题。就是这么简单。

对于在我删除的子面板中打开的表单

formName.Dock = DockStyle.Fill;

我设置了 formName.Height = panelContainer-25;所以现在最小化的小表格是可见的。

【讨论】:

    【解决方案3】:

    我知道这是迟到的帖子,但可能对像我这样的人有用。 试试这个,这对我来说也可以设置最小化的窗口位置和大小

    https://social.msdn.microsoft.com/Forums/windows/en-US/d6014e48-2adb-4096-8bea-94c2f3b1c47c/how-to-change-the-location-of-a-minimized-mdichild-form?论坛=winforms

    【讨论】:

      猜你喜欢
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      相关资源
      最近更新 更多