Выравнивание по центру по горизонтали - PullRequest
1 голос
/ 30 января 2012

Если у меня есть следующий код и я хочу выровнять элемент управления по горизонтали по центру формы.

let myForm:Form = new Form()
myForm.Text <- "myForm"
myForm.Height <- 500
myForm.Width <- 500  
let button:Button = new Button()
button.Text <- "Click"
myForm.Controls.Add(button)
button.Location <- Point(200, 20) 
// Using this code to align this control to center

Пожалуйста, предложите мне хороший способ горизонтального выравнивания по центру элемента управления.Выше не будет работать, если форма развернута.И, пожалуйста, предложите мне улучшить код, если есть другие хорошие практики.

Спасибо

Ответы [ 2 ]

3 голосов
/ 30 января 2012

Вот как я это сделаю в C #.Может быть, это может помочь вам.

Resize += new EventHandler(Form1_Resize);

И:

void Form1_Resize(object sender, EventArgs e)
{
    button1.Location = new Point(this.ClientSize.Width / 2 - button1.Width / 2, button1.Location.Y);
}
2 голосов
/ 30 января 2012

Перевод ответа @ ispiro на F # - если вы хотите перецентрировать каждый раз при изменении размера формы

Form1.Resize.Add (fun _ -> button1.Location <- new Point(this.ClientSize.Width / 2 - button1.Width / 2, button1.Location.Y))

Если это происходит только в конструкторе, вы можете просто сделать

button.Location <- Point(myForm.Width / 2 - button.Width / 2, button.Location.Y)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...