¿Hay algún otro método de llevar un control al frente que no sea control.BringToFront()? Tengo una serie de etiquetas en un control de usuario y cuando trato de llevar una de ellas al frente, no funciona. Incluso hice un bucle en todos los controles y les envié todo el reverso excepto el que me interesa y no cambia nada.Llevar el control Winforms al frente
Aquí es el método en el que se añade una etiqueta para el control de usuario
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();
}
Aquí es el método que envía todos ellos a la parte posterior.
private void SendLabelsToBack()
{
foreach (UserLabel lbl in userContainer.Controls)
{
lbl.SendToBack();
}
}
Algún código de ejemplo sería bueno. ¿Estás seguro de que los controles están en el mismo control de contenedor? Establecer un control al frente solo lo convertirá en el control frontal en su contenedor. – Patrick
Esta publicación me ayudó a resolver exactamente el mismo problema. – IbrarMumtaz