0

如何在 C# 中将一个表单置于另一个表单之上?

4

3 回答 3

1

你把这个放在表格 2 中

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

并在事件上单击 FORM 2 上的 OK

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

现在在 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 
}
于 2012-04-10T14:38:41.647 回答
0

如果 Form 1 已经“在顶部”,那么设置“TopMost”属性不会改变任何东西。

此外,默认情况下,表单“拥有”由它们创建和 Show()n 的其他表单。因此,如果 Form 1 创建并 Show()s Form2,并且当您单击“确定”时 Form2 没有关闭,那么即使 Form1 设置为 TopMost,因为它拥有 Form2,并且根据定义,“拥有”表单总是出现在在其所有者的顶部,Form2 仍将出现在 Form1 的顶部。

通常,您不应该使用“TopMost”,除非您正在显示一个用户必须看到的窗口,无论发生什么其他事情。通常有一些其他的方法来完成你想要的(例如 BringToFront() 方法)。

于 2012-04-10T14:34:13.213 回答
0

您可以将 Form2 的 chakbox 的修饰符(在属性中)更改为public,这样您就可以访问该复选框。

如果您使用的是form2.ShowDialog() ,则可以通过checkbox.Checked设置对话框结果

于 2012-04-10T14:38:01.263 回答