除了control.BringToFront()之外,是否还有其他方法将控件带到前端?我在用户控件上有一系列标签,当我尝试将其中一个标签带到前面时,它不起作用。我甚至通过所有的控制,并把它们全部发回,除了我感兴趣的那个,它不会改变一件事。将Winforms控件带到前面
这里是一个标签被添加到用户控制
private void AddUserLabel()
{
UserLabel field = new UserLabel();
++fieldNumber;
field.Name = "field" + fieldNumber.ToString();
field.Top = field.FieldTop + fieldNumber;
field.Left = field.FieldLeft + fieldNumber;
field.Height = field.FieldHeight;
field.Width = field.FieldWidth;
field.RotationAngle = field.FieldRotation;
field.Barcode = field.BarCoded;
field.HumanReadable = field.HumanReadable;
field.Text = field.FieldText;
field.ForeColor = Color.Black;
field.MouseDown += new MouseEventHandler(label_MouseDown);
field.MouseUp += new MouseEventHandler(label_MouseUp);
field.MouseMove += new MouseEventHandler(label_MouseMove);
userContainer.Controls.Add(field);
SendLabelsToBack(); //Send All labels to back
userContainer.Controls[field.FieldName].BringToFront();
}
方法下面是发送所有这些在后的方法。
private void SendLabelsToBack()
{
foreach (UserLabel lbl in userContainer.Controls)
{
lbl.SendToBack();
}
}
一些示例代码会很好。你确定控件在同一个容器控件中吗?将控件设置为前面只会使其成为其容器中的前端控件。 – Patrick 2010-04-11 18:05:20
这篇文章帮助我解决了完全相同的问题。 – IbrarMumtaz 2011-12-26 15:20:05