C# 表单上的AutoScrollMinize故障最小化/最大化
我有一个自定义UserControl,它有一个函数,每次调整控件大小时都会更新AutoScrollMinSize。此控件设置为DockStyle。请在父窗体内使用其他控件填充 我的问题是,当我最小化或最大化容器窗体时,它会发送两个连续的调整大小事件,出于某种原因,我的滚动条会消失 当我通过调整窗体边框的大小来调整窗体的大小时,滚动条每次都会完全更新。只有当我最小化或最大化滚动条时,滚动条才会消失 我尝试过分别或同时订阅OnResize和OnSizeChanged,但都遇到了相同的问题。我只尝试在新值不等于当前值时设置AutoScrollMinSize(以防将其设置为相同值两次时出现故障),但我仍然存在此问题 我的控件样式如下所示:C# 表单上的AutoScrollMinize故障最小化/最大化,c#,minimize,autoscroll,maximize,C#,Minimize,Autoscroll,Maximize,我有一个自定义UserControl,它有一个函数,每次调整控件大小时都会更新AutoScrollMinSize。此控件设置为DockStyle。请在父窗体内使用其他控件填充 我的问题是,当我最小化或最大化容器窗体时,它会发送两个连续的调整大小事件,出于某种原因,我的滚动条会消失 当我通过调整窗体边框的大小来调整窗体的大小时,滚动条每次都会完全更新。只有当我最小化或最大化滚动条时,滚动条才会消失 我尝试过分别或同时订阅OnResize和OnSizeChanged,但都遇到了相同的问题。我只尝试在
this.SetStyle(ControlStyles.DoubleBuffer |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.UserPaint |
ControlStyles.ResizeRedraw, true);
this.DoubleBuffered = true;
this.AutoScroll = true;
这不是一个完美的解决方案,但我发现在设置AutoScrollMinSize后调用PerformLayout()会强制显示滚动条
AutoScrollMinSize = newSize;
PerformLayout();
Invalidate();