水平居中对齐表单中的表单控件

时间:2012-01-30 13:33:48

标签: winforms f#

如果我有以下代码,并希望将按钮控件对齐到窗体的水平中心。

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

请建议我一个水平居中对齐控件的好方法。如果Form最大化,则上述操作无效。如果还有其他好的做法,请建议我改进代码。

由于

2 个答案:

答案 0 :(得分:3)

这就是我在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);
}

答案 1 :(得分:2)

翻译@ 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)