Как мне переместить элемент управления в центр экрана во время выполнения в C #? - PullRequest
4 голосов
/ 31 января 2012

Итак, у меня есть элемент управления (это ярлык) разного размера.Я хочу перецентрировать его в форме каждый раз, когда она изменяется (горизонтально по центру, а не по вертикали).Как бы я сделал это программно?

Ответы [ 4 ]

7 голосов
/ 31 января 2012
YourLabel.Left = (YourForm.Width / 2) - (YourLabel.Width / 2);

Если вы хотите, чтобы это настраивалось каждый раз при изменении размеров формы, просто используйте событие Form.Resize.

4 голосов
/ 31 января 2012

Код не требуется: AutoSize = False, TextAlign = TopCenter. Сделайте его настолько большим, насколько позволите. Якорь справа не обязателен.

1 голос
/ 13 ноября 2015

Самый простой способ центрировать любой компонент.может быть полезным для кого-то.Щелкните правой кнопкой мыши Project -> Add -> Class

Обновите этот класс с помощью приведенного ниже кода.

public static class MyClass
{
    public static void center(this Control component)
    {
        float compWidth = component.Width;
        float parentWidth = component.Parent.Width;
        float middled = (parentWidth / 2) - (compWidth / 2);

        component.Left = Convert.ToInt32(middled);
    }
}

, и затем вы сможете выполнить промежуточную обработку любого компонента.Вы можете использовать на любом компоненте, как это

MyLabel.center();
MyPanel.center();
0 голосов
/ 31 января 2012

Хорошо, так что я поправляюсь - спасибо, ребята.

Вот обходной путь, чтобы сделать это без кода, используя RAD (время разработки). Заметьте, я бы согласился с ответом @ Shark, так как не думаю, что это достигнет желаемого вами результата, но вот оно:

  • Нажмите кнопку в форме

  • Установить его текст как текст в метке

  • Кнопка размера, чтобы соответствовать тексту

  • Inсвойства кнопок «FlatStlye = Flat»

  • В свойствах кнопок разверните «Плоский внешний вид» и установите размер границы = 0

  • Теперь установите привязкувлево и вправо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...