C# 自定义控件中,动态加载控件问题??问题求帮忙

天地客人 2010-10-17 01:13:33

//控件 NumberLabel 的 Load 事件
for (int i = 1; i <= 9; ++i)
{
Label newLblNum = new Label();
newLblNum.Anchor = (AnchorStyles.None);
newLblNum.Dock = (DockStyle.None);
newLblNum.TextAlign = (ContentAlignment.MiddleCenter);
newLblNum.Size = new Size(20, 20);
newLblNum.Text = Convert.ToString(i);
newLblNum.Name = "newLblNum" + i.ToString();
newLblNum.Font = new Font("宋体", 12F);
newLblNum.MouseClick += new MouseEventHandler(lblNum_MouseClick);
newLblNum.MouseDoubleClick += new MouseEventHandler(lblNum_MouseDoubleClick);
newLblNum.Location = new Point((i - 1) % 3 * 20, (i - 1) / 3 * 20);
newLblNum.Visible = bArrValue[i-1];
Controls.Add(newLblNum);
}
// 这段貌似没什么问题,可以显示出9个 lable。

// 可以另一个属性 set 中访问,其中一个 lable,有问题:
// 错误 1 无法将类型“System.Windows.Forms.Control[]”转换为“System.Windows.Forms.Label”
//代码如下:

for (int i = 1; i <= 9; ++i)
{
((Label)this.Controls.Find("newLblNum" + i.ToString(),true)).Visible = bArrValue[i-1];
}


帮我看看,是什么问题,或怎样 访问其中一个 控件?谢了!!!
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
天地客人 2010-10-17
  • 打赏
  • 举报
回复
2楼的,也不行:
foreach 语句无法在“方法组”上执行。您是要调用“方法组”吗?
天地客人 2010-10-17
  • 打赏
  • 举报
回复
要根据 bArrValue 数组,设置 动态加载的 label 的 Visible值
天地客人 2010-10-17
  • 打赏
  • 举报
回复
按楼上说的:

Label lbl = this.Controls["newLblNum" + i] as Label;
lbl.Visible = bArrValue[i - 1];

报错:未将对象引用设置到对象的实例。
wuyq11 2010-10-17
  • 打赏
  • 举报
回复
Label lbl=this.Controls["newLblNum" + i] as Label;
  • 打赏
  • 举报
回复
foreach (Control c in this.label1.Parent.Controls)
{

if (c is Label)
{
index = Convert.ToInt32(c.Tag);
if (index != -1)
{
((Label)c).Text = QuertionHelper.stuAnswer[index];
if (QuertionHelper.stuAnswer[index] == "" || QuertionHelper.stuAnswer[index] == null)
{
((Label)c).Text = "未回答";
}
}

}

}
这是我以前写的一个遍历所有LABEL的方法 希望能帮到你
  • 打赏
  • 举报
回复
你想每个都访问一次还是想单独访问一个啊

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧