gpt4 book ai didi

c# - 将第二种形式准确地显示在第一种形式的位置

转载 作者:行者123 更新时间:2023-11-30 14:41:05 25 4
gpt4 key购买 nike

我从主窗体 (Form1) 调用以显示另一个窗体 (Form2)。但我希望它显示与 form1 完全相同的位置和大小,这样我们将无法再看到 form1,直到我们关闭 form2 或将其移动到其他地方。所以我写了这些行:

        Form2 f2 = new Form2();
f2.Left = this.Left;
f2.Top = this.Top;
f2.Size = this.Size;
f2.Show();

但是还是有问题。 form2我们不完全在form1上。我应该添加到代码中的任何其他内容吗?

最佳答案

是的,你做错了。如果您运行此程序的计算机具有完全相同的用户首选项、系统字体大小和视频 DPI 设置,则窗体的实际大小仅与设计大小相同。如果关闭很多,则 DPI 设置不同。如果稍微偏离一点,则用户偏好会有所不同。比如更大的标题栏字体或更大的按钮。修复:

    Form2 f2 = new Form2();
f2.Show();
f2.Left = this.Left;
f2.Top = this.Top;
f2.Size = this.Size;

如果这太明显,那么您应该让 Form2 的加载事件执行此操作。传递对主窗体的引用或使用 Owner 属性和 Show(owner)。换句话说:

    Form2 f2 = new Form2();
f2.Show(this);

在 Form2 中:

    protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
this.Location = Owner.Location;
this.Size = Owner.Size;
}

关于c# - 将第二种形式准确地显示在第一种形式的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4608156/

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