Gibt es andere Methoden, um ein Steuerelement an die Front außer control.BringToFront() zu bringen? Ich habe eine Reihe von Etiketten auf einem Benutzersteuerelement und wenn ich versuche, eines von ihnen nach vorne zu bringen, funktioniert es nicht. Ich habe sogar alle Kontrollen durchgegangen und ihnen alle zurückgeschickt, bis auf die, an der ich interessiert bin, und das ändert nichts.Winforms-Steuerelement nach vorne bringen
Hier ist das Verfahren, bei dem ein Etikett
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();
}
Hier zur Benutzersteuerung hinzugefügt wird, ist die Methode, die alle von ihnen auf die Rückseite sendet.
private void SendLabelsToBack()
{
foreach (UserLabel lbl in userContainer.Controls)
{
lbl.SendToBack();
}
}
Einige Beispielcode wäre nett. Sind Sie sicher, dass sich die Steuerelemente im selben Container befinden? Wenn Sie ein Steuerelement nach vorne setzen, wird es nur zum vorderen Steuerelement in seinem Container. – Patrick
Dieser Beitrag half mir, genau das gleiche Problem zu lösen. – IbrarMumtaz