gpt4 book ai didi

c# - 将 WindowState 设置为最大化会导致窗口出现得太早

转载 作者:太空狗 更新时间:2023-10-29 20:31:32 26 4
gpt4 key购买 nike

我读到 Load 事件应该在创建窗口句柄之后触发,但之前窗口实际上变得可见。在大多数情况下,这似乎是真的。但是,我发现当我创建一个 WindowState 属性设置为 FormWindowState.Maximized 的表单时(通过 VS 设计器,或以编程方式在构造函数中),窗口在 Load 事件触发之前变得可见。例如:

using System;
using System.Windows.Forms;

namespace MyApplication
{
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
WindowState = FormWindowState.Maximized;
}

protected override void OnLoad(EventArgs e)
{
MessageBox.Show("OnLoad - notice that the window is already visible");
base.OnLoad(e);
}
}
}

这反过来会导致显示的窗体在窗口可见时调整其控件(在 Form.Load 事件期间布局)的大小时闪烁很多。如果我没有将状态设置为最大化,那么所有调整大小都会在窗口显示之前完成(这是我所期望的)。

我可以推迟设置 WindowState 直到 Load 事件结束,但这仍然会导致大量闪烁,因为窗口变得可见,然后所有控件调整大小。

有什么想法吗?

最佳答案

尝试将 WindowState 的更改延迟到第一个 Activated 事件触发。这适用于我在 VB.NET 中使用 VS2005 和框架 2.0。

关于c# - 将 WindowState 设置为最大化会导致窗口出现得太早,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9806651/

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