【发布时间】:2013-11-21 12:03:05
【问题描述】:
我有两种表格 - 表格“main”和表格“alert”。
我已将“警报”表单更改为 userControl,
这是“main”形式的代码。
alert = new AlertForm();
alert.TopLevel = false;
alert.Visible = true;
this.pnlData.Controls.Add(alert);
alert.Canceled += new EventHandler<EventArgs>(buttonCancel_Click);
alert.Show();
pnlData 是“main”表单内的一个面板
当我尝试运行时,userControl 像这样重叠,
如何解决这个问题? pnlData中如何将userControl放在标签和文本框的前面?
【问题讨论】:
-
请注意,您的“对话框”只是作为控件(不是对话框/窗口!)添加到您的 pnlData 控件中。阅读Form documentation 中的备注和示例部分,了解如何正确操作。
-
这是一个简单的 Z 顺序问题。添加
alert.BringToFont();设置TopLevel = false 在这里不是一个好主意。 -
我尝试删除
TopLevel并添加alert.BringToFont();但错误Top-level control cannot be added to a control.@HansPassant -
不要两者都做。如果您不分配 TopLevel 则不要调用 Controls.Add()
-
您的解决方法很简单:
control.BringToFront。确保您的警报实际上是control,而不是表单