2016-11-18 30 views
-5

我搜索堆棧溢出,但聯合國能夠得到確切的答案..創建了兩個按鈕,但只能中心一個

我做的,我一直在使用C#控制檯創建兩個按鈕作業應用程序不是Windows窗體應用程序..現在我想中心他們兩個我能夠中心其中之一,但不是兩個

這是我如何集中我的第一個按鈕,但我怎麼能集中他們兩個呢?

Button btn_1 = new Button(); 
btn_1.Parent = this; 
btn_1.Location = new Point(
    (ClientSize.Width - btn_1.Width)/2, 
    (ClientSize.Height - btn_1.Height)/2 
); 
btn_1.Text = "some text"; 

這樣我可以中心只有一個按鈕如何中心他們兩個......如果我使用相同的代碼,然後將它們重疊,但如何讓他們兩個正好出現在中心

+0

您可以發佈了代號爲第二個按鈕? –

+0

是與不同的按鈕名稱相同的代碼 –

+0

是的,我知道...這就是爲什麼我說這樣我可以居中只有一個按鈕如何居中他們兩個...如果我使用相同的代碼,然後他們將會重疊,但是如何讓它們兩個完全出現在中心 –

回答

0

如果佈局高於對方,則可以參考第一個Button。指定第二Button作爲Button 1的(Y-位置+的高度)的Y座標:

Button btn_1 = new Button(); 
btn_1.Parent = this; 
btn_1.Location = new Point(
    (ClientSize.Width - btn_1.Width)/2, 
    (ClientSize.Height - btn_1.Height)/2 
); 
btn_1.Text = "some text"; 

this.Controls.Add(btn_1); 

Button btn_2 = new Button(); 
btn_2.Parent = this; 

// here use the coordinates of the first button 
btn_2.Location = new Point(btn_1.Location.X, 
    btn_1.Location.Y + btn_1.Height // position it below the first button 
    ); 

btn_2.Text = "2"; 

this.Controls.Add(btn_2); 

此代碼將放置低於第一的第二個按鈕。

編輯:

如果你想兩個按鈕也集中在Y軸則需要向上移動的第一個按鈕1按鈕高度單元是這樣的:

btn_1.Location = new Point(
    (ClientSize.Width - btn_1.Width)/2, 
    (ClientSize.Height - btn_1.Height * 2)/2 // subtract 2 * the height! 
); 

減去2 *身高,因爲你有2個按鈕

+0

Thankyou Thankyou Thankyou :) –

+0

所以他們都在中心或btn1是在中心和其他波紋管呢? –

+0

@AmmarAhmed第二個就在下面。我編輯我的答案,使他們都在中心也在Y維 –

1

我知道這個問題有一個公認的答案。但我會提出一個(我認爲)更簡單的方法來居中2個按鈕。我會做的是使用一個面板,把裏面的按鈕,只是居中面板,這樣的事情:

Panel p1 = new Panel(); 
p1.Size = new Size(0, 0); 
p1.AutoSize = true; 
Button b1 = new Button(); 
b1.AutoSize = true; 
b1.Text = "Some text"; 
Button b2 = new Button(); 
b2.AutoSize = true; 

b2.Text = "Some other text"; 

p1.Controls.Add(b1); 
p1.Controls.Add(b2); 
b2.Location = new Point(b1.Left, b1.Top+b1.Height); 


this.Controls.Add(p1); 
p1.Location = new Point((ClientSize.Width - p1.Width)/2, 
         (ClientSize.Height - p1.Height)/2); 
+0

謝謝另一種方式:) –

相關問題