我对C#很新。最近,我遇到了一个问题,即我想把两种不同的形式放在一起。
更详细,
一个大表单(即作为父窗口的东西)弹出一个小表单。
我想要做的是通过移动父窗口同时移动这两个表单。
而且,现在我通过Form的“Show()”方法创建子(小)形式。 问题是,如果我点击父表单,一个小表单将在父表单后面(即更大的表单)。
我知道这是应该发生的事情。但是,我希望通过移动较大的形式来移动这两种形式,同时保持小形式在前面。
我还考虑使用“ShowDialog()”。但是,这阻止了我移动更大的父母。我无法触摸父窗口。
答案 0 :(得分:2)
将子表单的所有者属性设置为父表单:
this.childForm = new ChildFormClass();
child.Owner = this;
viewForm.ShowDialog();
//Can also be called like this instead of setting Owner property:
//viewForm.ShowDialog(this);
参考:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.owner.aspx
这样,子表单永远不会显示在父表单后面。
编辑:
要将两个表单一起移动,只需处理父表单的Move事件:
private void Form1_Move(object sender, EventArgs e)
{
Point p = this.PointToScreen(new Point(this.ClientRectangle.X, this.ClientRectangle.Y));
this.childForm.Location = p; //childForm needs to be a class member
}
干杯