01/10/2018, 09:38
Gặp vấn đề về dòng code chọn tất cả label trên form
Sau một hồi mò mẫm trên mạng thì mình thấy dòng code này :
private void XoaNoiDung()
{
if (ctr is Label)
{
ctr.Text = "";
}
foreach (Control i in ctr.Controls)
{
Erase_background_label(i);
}
}
Dòng code trên vẫn hoạt động bình thường nếu ta dùng nó để thay đổi nội dung của label nhưng nếu đổi nó thành :
private void XoaNenTrangLabel()
{
if (ctr is Label)
{
ctr.Parent = background_img;
}
foreach (Control i in ctr.Controls)
{
XoaNenTrangLabel()
}
}
Thì chỉ một số label trên form đổi màu nền thôi,một số khác vẫn màu trắng dù đã chỉnh BackColor là transparent .Mọi người giải thích cho mình với !!!
Bài liên quan
2 code khác nhau hoàn toàn, 1 bên có truyền child 1 bên chỉ gọi lại chính hàm đó, mà cũng lạ, code 2 thế mà không bị stackoverflow
MÌnh viết thiếu đó bạn.Ở code 2 phải là XoaNenTrangLabel(i).Nếu viết như vậy nó vẫn bị lỗi nói trên.Bạn giúp mình khắc phục với!
Đây là một trong những lý do mình bỏ Winform
Bạn có chắc đoạn lệnh dùng để xóa nền trắng này là đúng
Đây là description cho dòng lệnh bạn vừa viết nhé, xem xem có gì bất hợp lí không
Mình xóa nền trắng riêng lẻ từng label với dòng code ấy nó vẫn ra kết quả đúng mà :3.Vấn đề là tại sao làm nhiều cái cùng lúc thì nó lại cái có cái không?
Đơn giản là vì đoạn lệnh bạn đang dùng không được thiết kế để làm việc đó