【问题标题】:Can't keep WinKey+Up from moving my form无法阻止 WinKey+Up 移动我的表单
【发布时间】:2012-04-04 09:41:39
【问题描述】:

我正在尝试在屏幕右下角设置一个窗口。它的 FormBorderStyle 设置为 None。我不希望用户能够移动它。不幸的是,如果用户按下 Winkey+Up(在 Win7 中最大化),它会将表单重新定位到我桌面上的 (0,0)。

我尝试在 LocationChanged 事件中重置位置,但是当我更改 Left/Top 或 Location 属性时,它们实际上并没有改变。

有人对我如何解决这个问题有任何想法吗?

谢谢!

【问题讨论】:

  • 如果您希望能够移动它,您可能需要将表单 WindowState 改回正常状态。
  • 这实际上解决了这个问题。如果您可以将其发布为答案,我可以将其标记为这样。

标签: c# .net winforms windows-7


【解决方案1】:

如果表单已最大化,您将无法以编程方式更改表单的位置。在尝试设置其位置之前,您需要将其 WindowState 属性更改为 FormWindowState.Normal

【讨论】:

    【解决方案2】:

    您需要一个 GlobalSystemHook,这不是一件容易的事。
    this url (CodeProject) 有一个有用的例子。

    【讨论】:

    • 幸运的是,M. Babcock 为我工作。不过,感谢您的意见。
    【解决方案3】:

    将您的FormBorderStyle 设置为FixedSingleFixed3DFixedDialogFixedToolWindow 之一ANDMaximizeBoxMinimizeBox 设置为false。

    【讨论】:

    • 出于美学原因,我需要表单边框不存在。不过,M.Babcock 解决了我的问题。感谢您的意见!
    猜你喜欢
    • 2014-11-21
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多