我有一个自定义的 UserControl ,其函数在每次调整控件大小时都会更新 AutoScrollMinSize 。此控件设置为 DockStyle.Fill 在带有其他一些控件的父窗体内。
我的问题是,当我最小化或最大化容器表单时,它会发送两个连续的调整大小事件,并且由于某种原因我的滚动条消失了。
当我通过调整表单边框大小来调整表单大小时,滚动条每次都会完美更新。只有当我最小化或最大化滚动条才会消失。
我试过单独或一起订阅 OnResize 和 OnSizeChanged 并且遇到同样的问题。如果新值不等于当前值,我只尝试设置 AutoScrollMinSize(以防在将其两次设置为相同值时出现一些故障),但我仍然有这个问题。
我的控件样式如下:
this.SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.UserPaint |
ControlStyles.ResizeRedraw, true);
this.DoubleBuffered = true;
this.AutoScroll = true;