控件锚属性在窗体开始最大化时不起作用

本文关键字:最大化 不起作用 开始 窗体 属性 控件 | 更新日期: 2023-09-27 18:08:22

我的问题是:我有一个带有控件的winform。这些控件中的许多都将Anchor属性设置为Top|Right。设计器中窗体的大小设置为1680x1050。如果我的分辨率设置为1680x1050,那么它总是正确显示。

如果我更改较小的分辨率(例如1600x900)并将窗体设置为最大化打开,那么我的控件都不会移动自己以保持与右边缘的距离。右边缘的控件都稍微突出了一点。但是,如果我取消最大化窗口,我可以调整窗口的大小,所有控件将保持他们的当前,不正确的距离右边缘。

如果我将窗体设置为正常(而不是最大化),那么它会在正确的位置打开所有控件,并且如果我调整窗体的大小,所有控件都保持在正确的位置。

这是一个非常令人沮丧的问题。你们这些好心人有什么建议给我吗?

控件锚属性在窗体开始最大化时不起作用

我建议使用我提出的解决方案:

 theForm.WindowState = FormWindowState.Maximized;

我的猜测是属性"最大化",这是在初始化调用期间设置的形式,并可能导致问题。(在没有看到项目代码的情况下很难说)。Load甚至在一些更重要的事件之后被调用,所以如果该属性存在某种问题,可以使用FormWindowState来避免它。最大化代码。

如果你想张贴你认为可能导致问题的实际代码,我会编辑这个答案以提供帮助。

- j

我解决我的问题:

将Control AutoSize属性设置为false

private void Form_Load(object sender, EventArgs e)
{
    dataGridView1.AutoSize = false; //true;
}

将所有控件放到SplitContainer中,并设置SplitContainer和控件的Dock属性,如datagridview = Fill