2012-04-10 77 views
0

如何在C#中將另一個窗體放在另一個窗體上?如何在另一個表單上放置一個表單?

+1

你能發表你正在使用的代碼嗎? – 2012-04-10 14:30:06

+1

「我無法看到變化」。你期望看到什麼?這個改變應該在哪裏「顯示」? – Oded 2012-04-10 14:30:19

+3

我認爲Form2最有可能以Form1的形式打開,在這種情況下,更改TopMost不會產生任何效果。 – 2012-04-10 14:31:18

回答

1

你把這個表格2

public delegate void CheckedEventHandler(bool val); 
public event CheckedEventHandler Checked; 

,並在活動中點擊OK上FORM 2

if (Checked != null) 
    Checked(yourvalue); // bool value 

and now in FORM 1

using (Form2 form = new Form2()) 
{ 
form.Checked += form2_Checked; 
form.ShowDialog(); 
form.Checked -= form2_Checked; 
} 

void form2_Checked(bool val) 
{ 
// do whatever you want with your value (form FORM2) set TopMost 
} 
0

如果表單1已經「在上面」,那麼設置「TopMost」屬性不會改變任何東西。

此外,默認情況下形成「自己」的其他形式,並由他們創建和顯示()n。因此,如果Form 1創建並顯示()Form2,並且Form2在您單擊「確定」時未關閉,則即使Form1被設置爲TopMost,因爲它擁有Form2,並且根據定義,「擁有」表單總是出現在他們的所有者頂部,Form2仍然會出現在Form1的頂部。

通常,除非您顯示用戶必須看到的窗口,否則不應使用「TopMost」,而不管其他事情是否發生。通常還有其他一些方法來實現你想要的(比如BringToFront()方法)。

0

您可以將Form2的chakbox的修改器(屬性中)更改爲public,因此您可以訪問該複選框。

如果你正在使用form2.ShowDialog()比你可以設置對話框結果來checkbox.Checked

相關問題