Как прикрепить Button к Label, чтобы он был динамическим?

Кто-нибудь знает, как "прилепить" кнопку к Label? То есть, если текст Label большой, а он динамический меняется, то кнопка прикреплена к нему и меняется в соответствии с его размером.


Ответы (1 шт):

Автор решения: Alexander Petrov

В событии Label.SizeChanged меняете размер кнопки. Всё.

using System.Windows.Forms;

namespace WinForms
{
    public partial class Form1 : Form
    {
        private Label label;
        private Button button;

        public Form1()
        {
            //InitializeComponent();

            label = new Label { Parent = this, BorderStyle = BorderStyle.FixedSingle, AutoSize = true };
            button = new Button { Parent = this, Top = label.Bottom, Width = label.Width };

            var textBox = new TextBox { Parent = this, Top = 100 };
            label.DataBindings.Add(nameof(label.Text), textBox, nameof(textBox.Text));

            label.SizeChanged += Label_SizeChanged;
        }

        private void Label_SizeChanged(object sender, System.EventArgs e)
        {
            button.Width = label.Width;
        }
    }
}

В данном примере приложения вводите текст в TextBox. К нему привязан Label. Текст в обоих контролах меняется синхронно. Также синхронно меняется размер кнопки.

→ Ссылка