如何在C#中将一个表单放在另一个表单上?
答案 0 :(得分:1)
你把它放在表格2中
public delegate void CheckedEventHandler(bool val);
public event CheckedEventHandler Checked;
and on event在FORM 2上单击“确定”
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
}
答案 1 :(得分:0)
如果表单1已经“在顶部”,则设置“TopMost”属性不会改变任何内容。
此外,默认情况下,形成“自己”创建的其他表单和由它们显示的Show()n。因此,如果表单1创建和Show()s Form2,并且单击“确定”时未关闭Form2,则即使Form1设置为TopMost,因为它拥有Form2,并且根据定义,“拥有”表单始终显示在在其所有者的顶部,Form2仍将出现在Form1之上。
通常情况下,除非您显示用户必须看到的窗口,否则不应使用“TopMost”,无论其他情况如何。通常还有其他方法可以实现您的目标(例如BringToFront()方法)。
答案 2 :(得分:0)
您可以将Form2的chakbox的修饰符(在属性中)更改为 public ,这样您就可以访问该复选框。
如果您使用 form2.ShowDialog(),则可以通过 checkbox.Checked
设置对话框结果