我有一个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以外的其他东西。
答案 0 :(得分:6)
您可以在标签上使用BringToFront:
_label.BringToFront();
这会将标签带到表单上Z顺序的前面,因此它应该显示在其他表单元素的顶部。
我有一个RECT()(不是WinFrom控件)RECT填充整个WinForm
“RECT”不是控件 - 它是一个定义大小和位置。根据您用于显示背景的内容,这可能不起作用。如果它正在绘制整个表单,它可能会覆盖您的其他控件,并“屏蔽”它们,无论您使用什么z命令。如果没有更多信息,可能很难提供指导,但您必须确保在“RECT”之后重新标记标签。