c# - WinForms - 表格大小错误

标签 c# winforms

我们有以下代码:

    private void MainForm_Shown(object sender, EventArgs e)
    {
        RepositionForm();
    }

    private void RepositionForm()
    {
        Rectangle rect = Screen.PrimaryScreen.WorkingArea;
        this.Width = 100;
        this.Height = 117;
        this.TopMost = true;
        this.Left = rect.Width - this.Width - 1;
        this.Top = rect.Height - this.Height - 1;
    }

当我们从 Visual Studio 启动应用程序时 - 显示的表单大小正确:100x117。 但是,当我们通过启动 EXE 文件启动项目时,窗体大小为 106x127。

The MinimumSize, MaximumSize and Size properties are set to 100x117.
WindowsState = Minimized
ShowIcon = False
ShowInTaskbar = False
Topmost = True
MinimizeBox - False
MaximizeBox = False
FormBorderSize = FixedDialog
ControlBox = True

怎么会发生这种情况,应用程序的启动方式甚至都不同?

谢谢

最佳答案

我敢猜测问题出在 Windows 主题和/或桌面窗口管理器对您的操作系统版本来说不是确定性的。

尝试将 Windows 主题设置为基本(桌面 -> 个性化),然后重新运行测试。如果你得到不同的结果,你知道它取决于 Windows 而不是你的代码。

此外,您可能还想检查 Windows 框架的非客户区,看看它是否因操作系统/主题而改变。

关于c# - WinForms - 表格大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15136564/

相关文章:

c# - 如何访问实时创建的TabPages?

c# - 从 C# WinForm 应用程序中的循环更改标签背景色

c# - 如何将数据强制转换为方法约束中指定的泛型?

c# - 使用 Telerik openAcces ORM 从 mysql 服务器获取数据并将其上传到 Sql 服务器

c# - 加入 3 个列表并使用 linq 计算一个 ID 在列表中的次数的最佳方法

c# - SignalR(v2.2.0) OnDisconnected 设置用户离线

javascript - 在代码隐藏中生成动态点击事件

c# - 如何在不使用第 3 方库的情况下登录 C#?

c++ - Windows C++ 子窗口无响应

c# - 单击鼠标按钮如何在 WinForms 事件中结束?