Поля вокруг System.Windows.Forms.Button - PullRequest
1 голос
/ 20 сентября 2010

Как сделать "сплошные" поля вокруг элемента управления 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". Также это будет иметь отступ на слева . Таким образом, наличие нескольких таких кнопок на панели приведет к их расположению справа от панели. Зачем? Например. У меня 3 такие кнопки сложены вправо. В некоторых случаях я хотел бы скрыть средний. Я бы установил его свойство ".Visibile = false", чтобы оно было скрыто. В этом случае крайняя правая кнопка будет складываться в крайнем левом положении с одинаковым интервалом между ними.

1 Ответ

1 голос
/ 20 сентября 2010

Поместите кнопку на панель, как вы пытались, но оставьте свойство Dock по умолчанию.Вместо этого измените размер кнопки внутри панели и установите для свойства привязки кнопки значение «Вверх», «Вправо», «Влево» и «Вниз».Сохранение значения свойства Dock по умолчанию и установка свойства Anchor, как я описал, приведет к изменению размера кнопки в пределах поля при изменении размера Panel.

...