1
我有一個帶有多個圖片框和標籤的用戶控件。 我需要將每個標籤(磅)放在他自己的Picturebox(pbParent)上,並且標籤Backcolor必須是透明的,以提高此圖片框下的PictureBox圖像可見性。 圖片框被命名爲TabFrame0到TabFrameN,並且標籤被命名爲Label0到LabelN。當標籤的Parent是一個PictureBox時,在UserControl中按名稱查找標籤
我有一個函數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