查找窗体控件的问题,帮我看看

Brssye 2006-10-30 11:48:01

Label labelStar = new Label();
labelStar.Name = "labStart" + column.ColumnName;
if (this.panelCenter.Controls.Contains((Label)("labStart" + dc.ColumnName)))
{
///
}


最后一行代码是不是有问题,最后一行代码执行不了,找不到。
...全文
185 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
liujia_0421 2006-10-30
  • 打赏
  • 举报
回复
我测试过,可以实现...
liujia_0421 2006-10-30
  • 打赏
  • 举报
回复
一个字符串当然不能与一个控件类型相互转化啊,通过判断Control.Name来实现:
foreach (Control control in panelCenter.Controls )
{
if (control.Name == "labStart" + column.ColumnName)
{
//你的操作
}
}
honght 2006-10-30
  • 打赏
  • 举报
回复
刚才说错了
(Label)("labStart" + column.ColumnName)
这个转换是不行的,不能把string和label转换的
liujia_0421 2006-10-30
  • 打赏
  • 举报
回复
foreach (Control control in panelCenter.Controls )
{
if (control.Name == "labStart" + column.ColumnName)
{
//你的操作
}
}

这样试下...
北京的雾霾天 2006-10-30
  • 打赏
  • 举报
回复
private bool ContainsControl(string name, Control parent)
{
foreach (Control ctr in parent.Controls)
{
if (ctr.Name == name)
{
return true;
}
}
return false;
}
Brssye 2006-10-30
  • 打赏
  • 举报
回复
那应该怎么写呢,怎么找到我要的lable是否存在
liujia_0421 2006-10-30
  • 打赏
  • 举报
回复
直接将字符串转成Lable??
Brssye 2006-10-30
  • 打赏
  • 举报
回复
提示无法将类型"string "转换为 Lable
Brssye 2006-10-30
  • 打赏
  • 举报
回复
是执行不了,不是找不到
liujia_0421 2006-10-30
  • 打赏
  • 举报
回复
"dc"是什么??

将dc改成column行吗?
Brssye 2006-10-30
  • 打赏
  • 举报
回复
this.panelCenter.Controls.Add(labelStar);

添加到了控件上,这几行代码中没有写出来。
bitpolar 2006-10-30
  • 打赏
  • 举报
回复
执行不了那是转换错误 找不到那就是没添加到panelCanter上
bitpolar 2006-10-30
  • 打赏
  • 举报
回复
字符串强制转换成label了把
honght 2006-10-30
  • 打赏
  • 举报
回复
labelStar是你自己定义的,并没有添加到panelCenter上,当然出问题了
Brssye 2006-10-30
  • 打赏
  • 举报
回复
Label labelStar = new Label();
labelStar.Name = "labStart" + column.ColumnName;
if (this.panelCenter.Controls.Contains((Label)("labStart" + column.ColumnName)))
{
///
}

第三行代码是不是有问题,第三行代码执行不了,找不到。
Brssye 2006-10-30
  • 打赏
  • 举报
回复
因为控件都是我根据字段的名称自动生动的,我现在要来判断这个控件的text是否为空。不知道怎么写啊,以下写不行。
ComboBox combox = new ComboBox();
combox.Name = "cbx" + column.ColumnName;
combox.Text = getDataRow[column].ToString();
this.panelCenter.Controls.Add(combox);
...
if ((ComboBox)("cbx" + column.ColumnName).Text == "")
{
InputOK = false;
}
else
{
InputOK = true;
}
Brssye 2006-10-30
  • 打赏
  • 举报
回复
多谢,我试试。
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-10-30 11:48
社区公告

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