现象:在有些机器上,winform的程序,最小化之后还原窗口,但是控件不在画面中。此时更改窗口的大小,控件又会出现。
初步怀疑是窗口最小化后,布局发生变化,控件位置挪到别的地方。但是还原过后,控件没有重新布局,所以控件会消失。
暂时的解决办法,最小化还原后调整窗体大小
bool HaveInit = false;
FormWindowState MyWindowState = FormWindowState.Minimized;
private void FormVisionMian_SizeChanged(object sender, EventArgs e)
{
if (MyWindowState != this.WindowState || !HaveInit)
{
if (!HaveInit) HaveInit = true;
FormWindowState tmpState = MyWindowState;
MyWindowState = this.WindowState;
if (this.WindowState == FormWindowState.Normal)
{
_Log.Info("还原");
if (tmpState == FormWindowState.Minimized)//从最小化恢复
{
//这个是写在ini文件里面