这是我的问题:我有一个带控件的winform。其中许多控件的Anchor属性设置为Top | Right。设计器中表单的大小设置为1680x1050。如果我的分辨率设置为1680x1050,那么它总是正确显示。
如果我更改为较小的分辨率(例如1600x900)并且表单设置为最大化打开,则我的控件都不会自行移动以保持与右边缘的距离。右边缘的控件都是从形状上伸出一点点。但是,如果我然后取消最大化窗口,我可以调整窗口的大小,所有控件将保持与右边缘的当前,不正确的距离。
如果我将表单设置为正常启动(未最大化),那么它会打开,所有控件都在正确的位置,如果我调整表单大小,所有内容都会保留在正确的位置。
这是一个非常令人沮丧的问题。你们这些善良的人对我有什么建议吗?
答案 0 :(得分:1)
我建议只使用我建议的解决方案:
theForm.WindowState = FormWindowState.Maximized;
我的猜测是在表单初始化调用期间设置的属性“Maximized”可能导致问题。 (没有看到项目代码就很难说)。在一些更重要的事件之后,甚至会调用Load,所以如果该属性存在某种类型的问题,则可以使用FormWindowState.Maximized代码来避免它。
如果您希望发布您认为可能导致问题的实际代码,我会编辑此答案以提供帮助。
-J
答案 1 :(得分:0)
我解决了我的问题:
将Control AutoSize属性设置为false。
private void Form_Load(object sender, EventArgs e)
{
dataGridView1.AutoSize = false; //true;
}
答案 2 :(得分:0)
将所有控件放在SplitContainer中并设置splitcontainer和control的Dock属性,例如datagridview = Fill