如何围绕System.Windows.Forms.Button控件制作“可靠”的边距?
var button = new System.Windows.Forms.Button();
button.Dock = DockStyle.Fill;
button.Margin = new Padding(20);
var panel = new System.Windows.Forms.Panel();
panel.Controls.Add(button);
在上面的示例中,按钮在容器面板中没有任何边距。
是否可能以某种方式实现,因此按钮周围有20px的空间,但仍然表现得像普通的Button(例如从System.Windows.Forms.Button类继承并做一些自定义绘制)?
编辑:让我解释一下我想要做什么。我想有这样的按钮控件,它将设置“.Dock = DockStyle.Right”属性。它也会在左侧上填充。因此,在面板上具有很少的这种按钮会将它们堆叠在面板的右侧。 为什么?例如。我有3个这样的按钮堆叠在右边。在某些情况下,我想隐藏中间的一个。我会设置它的属性“.Visibile = false”,因此它被隐藏。在这种情况下,最右边的按钮将堆叠到最左边,它们之间具有相同的空间。
答案 0 :(得分:1)
将Button按照您尝试的方式放置在面板中,但将Dock属性保留为默认值。而是根据需要调整Panel中的Button大小,并将Button的Anchor property设置为Top,Right,Left和Bottom。保持默认的Dock属性值并设置我所描述的Anchor属性将导致按钮在调整Panel大小时在边距内调整大小。