panel 控制 类型 转换

focolo 2009-05-06 09:49:20
想把panel中的所有TextBox,ComboBox控制,转换成Label类型
private void diversionCT()
{
Label lbl;
TextBox tbxType = new TextBox();
ComboBox cobType = new ComboBox();
foreach (Control temp in this.cpContent.Controls)
{
if (temp.GetType().Equals(tbxType))
{
lbl = new Label();
lbl.Location = (temp as TextBox).Location;
lbl.Text = (temp as TextBox).Text;
temp = lbl;
break;
}
if (temp.GetType().Equals(cobType))
{
lbl = new Label();
lbl.Location = (temp as ComboBox).Location;
lbl.Text = (temp as ComboBox).SelectedText;
temp = lbl;
break;
}
}
}
错误 13 “temp”是一个“foreach 迭代变量”,无法为它赋值 D:\NNMessageClient\NNMessageClient\NNMessageClient\FormBasicInfo .cs 95 21 NNMessageClient
谁有更好的方法啊?

...全文
58 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
focolo 2009-05-06
  • 打赏
  • 举报
回复
用for,也要用到this.Controls[i]<--这个索引也不能被赋值
所以这么说,用循环遍历panel中的控制并需要改变其值就形成了一个瓶颈,这只有两种可能,微软不让改或微软没有考虑到
mdq001 2009-05-06
  • 打赏
  • 举报
回复
foreach 中的变量是只读的,不能为其赋值

用传统for解决for(int i=0;i<this.Controls.count;i++)

111,125

社区成员

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

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

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