C#WinForm中构造函数和form_load的代码执行的区别?
木_玉 2014-07-11 10:24:54 我想把窗体设置成根据显示器的分辨率来调整大小和布局,但是我把下面代码放在构造函数和form_load下出现了不同的结果,在构造函数下出现了预期外的结果,不知道为什么,请大牛解释下,小弟刚入门:
Rectangle recScreenArea = Screen.GetWorkingArea(this);
int iWidth = recScreenArea.Width - 100;
int iHeigh = recScreenArea.Height - 100;
this.Width = iWidth;
this.Height = iHeigh;
splImgPanel.SplitterDistance = iWidth - 1440 + 860;
那个-100是我用来模拟不同屏幕分辩率用的,我的分辩率是1440,在全屏的情况下splImgPanel.SplitterDistance=860,以为我的界面是横向分为2块,右边的宽度固定(大小为1440-860),所以在不同屏幕下左边的宽度为iWidth - 1440 + 860;
问题是在构造函数下,跑完这段代码后 splImgPanel.SplitterDistance是760没错,但是最后变成了696,不知道在哪里出错了,我也跟不到;
但把同样的代码放到form_load下执行,最后splImgPanel.SplitterDistance就是760,跟预期的一样,高手们能解释下吗