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

ten*_*ing 2 label rect winforms

我有一个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();
Run Code Online (Sandbox Code Playgroud)

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

此外,由于我使用的API和DLL,我不能使用RECT或WinForms以外的东西.

Ree*_*sey 6

您可以在标签上使用BringToFront:

_label.BringToFront();
Run Code Online (Sandbox Code Playgroud)

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

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

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