【问题标题】:Margins around the System.Windows.Forms.ButtonSystem.Windows.Forms.Button 周围的边距
【发布时间】:2011-04-14 11:44:17
【问题描述】:

如何在 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);

在上面的示例中,按钮在容器面板中没有任何边距。

是否有可能实现使按钮周围有 20 像素的空间,但仍像普通按钮一样运行(例如,继承自 System.Windows.Forms.Button 类并进行一些自定义绘制)?

编辑:让我解释一下我想要做什么。我想要这样的按钮控件,它会设置“.Dock = DockStyle.Right”属性。它也会在 left 上有填充。因此,面板上只有很少的此类按钮会将它们堆叠在面板的右侧。 为什么?例如。我有 3 个这样的按钮堆叠在右侧。在某些情况下,我想隐藏中间一个。我会设置它的属性“.Visibile = false”,所以它是隐藏的。在这种情况下,最右边的按钮将堆叠到最左边,它们之间的间距相同。

【问题讨论】:

    标签: winforms user-interface button padding margin


    【解决方案1】:

    像您尝试的那样将按钮放置在面板中,但将 Dock 属性保留为默认值。相反,您可以根据需要调整面板中的按钮大小,并将按钮的Anchor property 设置为上、右、左和下。保持默认的 Dock 属性值并按照我的描述设置 Anchor 属性将导致按钮在调整面板大小时在边距内调整大小。

    【讨论】:

    • 如果你有很多这样的按钮 - 管理这样的布局将是一个真正的痛苦。