Có phương pháp nào khác mang điều khiển đến mặt trước ngoài control.BringToFront() không? Tôi có một loạt các nhãn trên điều khiển người dùng và khi tôi cố gắng đưa một trong số chúng lên phía trước, nó không hoạt động. Tôi thậm chí đã looped thông qua tất cả các điều khiển và gửi tất cả trở lại, ngoại trừ một trong những tôi quan tâm và nó không thay đổi một điều.Mang điều khiển Winforms về phía trước
Dưới đây là phương pháp mà một nhãn được thêm vào điều khiển người dùng
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();
}
Đây là phương pháp mà sẽ gửi tất cả trong số họ để lại.
private void SendLabelsToBack()
{
foreach (UserLabel lbl in userContainer.Controls)
{
lbl.SendToBack();
}
}
Một số mã mẫu sẽ đẹp. Bạn có chắc các điều khiển nằm trong cùng một điều khiển vùng chứa hay không. Việc đặt điều khiển thành mặt trước sẽ chỉ làm cho nó trở thành điều khiển phía trước trong vùng chứa của nó. – Patrick
Bài đăng này đã giúp tôi giải quyết cùng một vấn đề. – IbrarMumtaz