gpt4 book ai didi

c# - 如何在 C# 中停靠 Windows 窗体?

转载 作者:太空狗 更新时间:2023-10-29 21:47:36 29 4
gpt4 key购买 nike

我只是想知道是否可以将 Windows 窗体停靠在用户屏幕的顶部?我一直在尝试通过手动将表单的位置设置为我想要的坐标来做到这一点。但是,使用此方法允许用户仅通过拖动来更改窗体的位置。我想让窗体停靠在屏幕的上部,因为此窗体将用作我正在制作的项目的菜单。

非常感谢。 :)

最佳答案

我会考虑使用 Control.Dock属性(property)以及DockStyle之一枚举值。

您可能需要使用 Layout同样,这样您就可以根据所选的 DockStyle 以不同方式布置表单的控件。

在我看来,您需要考虑 Control.Location属性,以便您了解要将表单停靠在哪个 DockStyle 值上。

编辑#1

您的 Windows 窗体具有 Dock 属性,因为它继承自 Control

让我们考虑以下几点:

  1. 例如,每当您的表单靠近屏幕右侧或 MDI 容器时,您都想停靠在右侧,对吧? (这里有点文字游戏......=P)所以,你必须订阅 Control.LocationChanged事件。

    private void myForm_LocationChanged(object sender, EventArgs e) {
    if (this.Location.X > 900) then
    this.Dock = DockStyle.Right;
    else if (this.Location.X < 150) then
    this.Dock = DockStyle.Left;
    else if (this.Location.Y > 600) then
    this.Dock = DockStyle.Bottom;
    else if (this.Location.Y < 150) then
    this.Dock = DockStyle.Top;
    else
    this.Dock = DockStyle.None;
    }

实际上,您应该使用当前的桌面分辨率,并从中计算出您希望停靠的位置的比率,而不是常数值。

***免责声明:****此代码按原样提供,未经测试。希望该算法足以在您需要时指导您完成对接过程。可应要求提供进一步协助。* =)

似乎Form.DesktopLocation property 是完成您的主窗口工作的正确工具,例如您的 MDI 容器。至于其他窗口,我会使用类似于提供的代码示例的内容。

这有帮助吗?

编辑#2

如果你想防止表格重叠,也许是Control.BringToFront()方法可以在您调用 Control.Show() 之前或之后执行此操作方法,具体取决于最适合您的方法。

关于c# - 如何在 C# 中停靠 Windows 窗体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214351/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com