2014-02-18 12 views
0

我對C#很新穎。最近,我陷入了一個問題,那就是我想要將兩種不同的形式結合在一起。將兩個表單一起移動而不更改這兩個表單的位置(後面或前面)

更詳細地,

一個大的形式(即作爲東西父窗口)彈窗小的形狀。

我想要做的是通過移動父窗口來同時移動這兩個窗體。

而現在,我正在通過Form的「Show()」方法創建孩子(小)形式。 問題是,如果我單擊父窗體,則小窗體將落在父窗體後面(即更大的窗體)。

我知道這是應該發生的事情。但是,我想通過移動更大的表單來移動這兩個表單,同時保持小表單正面。

我也考慮使用「ShowDialog()」。但是,這阻止了我移動更大的父母。我無法觸摸父窗口。

+0

嘗試。 frmChild.Show(this); – Shell

回答

2

設置子窗體的所有者財產的父窗體:

this.childForm = new ChildFormClass(); 
child.Owner = this; 
viewForm.ShowDialog(); 
//Can also be called like this instead of setting Owner property: 
//viewForm.ShowDialog(this); 

參考:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.owner.aspx

這樣,子窗體永遠不會顯示父身後。

編輯:

要將這兩種形式一起,簡單地辦理父母的形式Move事件:

private void Form1_Move(object sender, EventArgs e) 
{ 
    Point p = this.PointToScreen(new Point(this.ClientRectangle.X, this.ClientRectangle.Y)); 
    this.childForm.Location = p; //childForm needs to be a class member 
} 

乾杯

+0

我剛剛意識到你也想知道如何將子窗體移動到父窗體中。我會更新我的例子。 –

+0

是的,但是,我認爲我可以做到這一點。讓孩子保持正面對我來說很棘手。 – user2533493

相關問題