使WinForm控件显示在所有其他控件之上

时间:2012-08-23 16:53:33

标签: winforms label rect

我有一个WinFrom,我隐藏了所有边框和控制框。在WinForm里面,我有一个RECT()(不是WinFrom控件)RECT填充整个WinForm。

我正在尝试将标签添加到WinForm,但我希望标签出现在RECT的顶部。标签出现在WinForm上,但从不在RECT之上。我尝试过使用以下内容:

/*App Runs - Label does not show up*/
_label.Text = "This is the label";
_label.BackColor = Color.Cornsilk;
_form.Controls.Add(_label);
_form.Controls.SetChildIndex(_label, 0);

/*App Does Not Run*/
_label.Text = "This is the label";
_label.BackColor = Color.Cornsilk;
_form.Controls.SetChildIndex(_label, 0); //trying to set the index before I add the label to the form
_form.Controls.Add(_label);

/*App Runs - Label does not show up*/
_label.Text = "This is the label";
_label.BackColor = Color.Cornsilk;
_label.BringToFront();
_form.Controls.Add(_label);

/*App Runs - Label does not show up*/
_label.Text = "This is the label";
_label.BackColor = Color.Cornsilk;
_form.Controls.Add(_label);
_label.BringToFront();

正如你所看到的,我尝试了很多不同的东西,但没有任何工作。我已经尝试在添加RECT之后添加标签,但无济于事。我在添加背景图像方面遇到了类似的问题(虽然不是这里要问的问题)。有没有人知道更有力的方法让Label出现在RECT的顶部?

另外,由于我使用的API和dll,我不能使用RECT或WinForms以外的其他东西。

1 个答案:

答案 0 :(得分:6)

您可以在标签上使用BringToFront

_label.BringToFront();

这会将标签带到表单上Z顺序的前面,因此它应该显示在其他表单元素的顶部。

  

我有一个RECT()(不是WinFrom控件)RECT填充整个WinForm

“RECT”不是控件 - 它是一个定义大小和位置。根据您用于显示背景的内容,这可能不起作用。如果它正在绘制整个表单,它可能会覆盖您的其他控件,并“屏蔽”它们,无论您使用什么z命令。如果没有更多信息,可能很难提供指导,但您必须确保在“RECT”之后重新标记标签。