台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
2218
 
會員總數:198953
接案會員:6239
文章總數:2320
討論主題:152394
歡迎您免費加入會員
廣告
討論區列表 >> C# >> 元件以Dock.Top設定停駐位置後,該如何控制各元件的排列順序

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
元件以Dock.Top設定停駐位置後,該如何控制各元件的排列順序
價值 : 20 QP  點閱數:919 回應數:2

點圖分享到Plurk吧!
樓主


初學者
163 5
472 69
在win form 假設有3個Button btn1, btn2, btn3
預設3個的Dock屬性都設為Top, 由上而下排列順序為btn1, btn2, btn3

在執行過程中,將其Dock屬性改為Bottom,由上而下排列順序卻變為 btn3, btn2, btn1
(改變程式的順序,排列順序還是一樣)
請問要如何自由控制元件的排列順序?
本篇文章發表於2005-05-24 16:58
小舖會員回娘家!重量級好禮送給大家 2009年藍色小舖認證專家卡得主名單
1樓
最有價值解答

.SM.
中級專家
4092 14
1688 491
捐贈 VP 給 Sam Lin 檢舉此回應
主要是要控制 Dock 屬性,以及 Controls.Add 的順序.

		private void RemoveBtn(Button btn1)
		{
			if(this.Controls.Contains(btn1))
				this.Controls.Remove(btn1);
		}

		private void SetDockProperity(Button btn1, DockStyle dockStyle)
		{
			btn1.Dock = dockStyle;
		}

		private void DockTop_Click(object sender, System.EventArgs e)
		{
			RemoveBtn(this.button1);
			RemoveBtn(this.button2);
			RemoveBtn(this.button3);
			SetDockProperity(this.button1, System.Windows.Forms.DockStyle.Top); 
			SetDockProperity(this.button2, System.Windows.Forms.DockStyle.Top);
			SetDockProperity(this.button3, System.Windows.Forms.DockStyle.Top);
			this.Controls.Add(this.button3); // 注意順序, 後 Add 的最上面
			this.Controls.Add(this.button2);
			this.Controls.Add(this.button1);
		}

		private void DockBottom_Click(object sender, System.EventArgs e)
		{
			RemoveBtn(this.button1);
			RemoveBtn(this.button2);
			RemoveBtn(this.button3);
			SetDockProperity(this.button1, System.Windows.Forms.DockStyle.Bottom); 
			SetDockProperity(this.button2, System.Windows.Forms.DockStyle.Bottom);
			SetDockProperity(this.button3, System.Windows.Forms.DockStyle.Bottom);
			this.Controls.Add(this.button3);  // 注意順序, 後 Add 的最下面
			this.Controls.Add(this.button2);
			this.Controls.Add(this.button1);
		}




本篇文章回覆於2005-06-07 10:49
2樓
作者回應


初學者
163 5
472 69
檢舉此回應
原來要利用重新Add 才能設定元件的順序... 謝啦


本篇文章回覆於2005-06-10 16:57
[變換順序]
1
 

回覆
如要回應,請先登入.