如何在 C# 中将一个表单置于另一个表单之上?
问问题
286 次
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 回答