У меня есть пользовательский элемент управления с несколькими изображениями и надписями на них. Мне нужно поместить каждую метку (lb) на свой собственный Picturebox (pbParent), а ярлык Backcolor должен быть прозрачным, чтобы улучшить видимость изображения PictureBox в этом окне. Ящики с изображениями называются TabFrame0 до TabFrameN, а ярлыки обозначаются Label0 - LabelN.Найти ярлык по имени в UserControl, когда родительский ярлык является PictureBox
У меня есть функция GetLabelByTag, которая должна вернуть ярлык, поиск по его названию. Он отлично работает, пока я не сделаю родительский ярлык PictureBox (см. Строку 8). Итак, мои вопросы: как найти ярлык, если он родительский, станет PictureBox, а не моим UserControl, какая коллекция содержит его?
void CreateControls()
{
...
newLabel.Name = TAB_PIC_BOX_LABEL_NAME + _id.ToString(); //1
newLabel.Text = _text;//2
newLabel.Tag = _id;//3
newLabel.AutoSize = true;//4
Controls.Add(newLabel);//5
Label lb = GetLabelByTag(_id, TAB_PIC_BOX_LABEL_NAME);//6
PictureBox pbParent = GetPicBoxByTag(_id, TAB_PIC_BOX_CONTROL_NAME);//7
lb.Parent=pbParent;//8
lb.BringToFront();//9
...
}
...
Label GetLabelByTag(int _tag, string _family)
{
Label rez = new Label();
foreach (Control lb in Controls)
{
if (lb.Tag != null)
{
if (((int)lb.Tag == _tag) && (lb.Name == _family + _tag.ToString()))
{
rez = (Label)lb;
}
}
}
return rez;
}
это работает! Большое спасибо! – kirpi4