Есть необходимость скроллировать свой UserControl.
Он помещён в Parent Control с AutoScroll = true.
UserControl обычно поддерживает свой размер равным Parent т.е. Resize'иться вместе с ним, и в некоторых случаях может быть больше Parent тогда включаются ScrollBars.
Реализовано это примерно так, UserControl следит за размером Parenta и меняет свой вслед за ним:
protected void SetSize()
{
if(net.Width >= Parent.ClientRectangle.Width)
this.Width = net.Width;
else
this.Width = Parent.ClientRectangle.Width;
if(net.Height >= Parent.ClientRectangle.Height)
this.Height = net.Height;
else
this.Height = Parent.ClientRectangle.Height;
}
private void ParentResizeHandler(object sender, EventArgs args)
{
SetSize();
}
А Parent следит за размером UserControl`а и поддреживает AutoScrollMinSize равным размеру UserControl'a, чтобы если тот увеличиться появились ScrollBar'ы:
private void CanvasResizeHandler(object sender, EventArgs args)
{
this.AutoScrollMinSize = NetCanvas.Size;
}
Всё вроде просто, и даже работает, если бы не одно НО!
Когда я уменьшаю размеры формы, ScrollBar'ы "дребезжат". ;)
Т.е. почему-то на мгновение появляются и исчезают многократно.
По идее я поддерживаю AutoScrollMinSize равным размеру вложенного UserControl'а и их быть не должно, но они почему-то моргают. :xz: