2012-04-10 85 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

相关问题