我有一个使用GDI +绘制文本和图形的自定义UserControl。通常我在另一个控件中使用DockStyle.Bottom停靠它。在自定义用户控件中实现自动大小
此控件的大小由使用Graphics.MeasureString()的自定义布局确定。因此,每次宽度更改时都需要重新计算高度,当父宽度更改时会更改宽度更改。
目前我在其OnSizeChanged事件中设置此控件的高度。不过,我注意到一些错误。有时,当我调整父级的大小时,即使它设置为DockStyle.Bottom,控件也不会触及父级的底部。我使用Spy ++来分析控件边界,控件和父边之间只有一些空白空间约20像素。
我想在此用户控件中实现一个适当的AutoSize,并假设顶部或底部DockStyle。
尝试为FlowLayoutPanel和UserControl本身设置AutoSize为true? – 2012-02-27 22:14:53
不使用FlowLayoutPanel。 – 2012-02-27 22:19:36
为此使用FlowLayoutPanel有什么问题吗?或者如何设置Anchor?如果您在用户控件的所有控件上使用锚点和停靠点,并将它们设置为停靠在控件边缘,则控件将使用UserControl调整大小,并且现在可以将锚点/停靠点也设置为UserControl。当您结合UserControl的Anchor和Dock属性设置选项时,控件的边缘会显示到UI的其他部分。当UI被调整大小时,您的控件也将被正确调整大小。 – 2012-02-27 22:29:09