请高手帮着解释一小段C#代码

wywzld 2008-12-15 11:05:38
public string GetInfo(Control control)
{
string str = "";
foreach(Control control1 in control.Controls)
{
switch (control1.GetType().ToString())
{
case "System.Windows.Forms.TextBox":
str +="\r\n"+ ((TextBox)control1).Tag +":" +((TextBox)control1).Text;
break;
case "System.Windows.Forms.ComboBox":
str += "\r\n" + ((ComboBox)control1).Tag + ":" + ((ComboBox)control1).Text;
break;
case "System.Windows.Forms.RadioButton":
str += ((RadioButton)control1).Checked == true ? "\r\n"+((RadioButton)control1).Text : "";
break;
case "System.Windows.Forms.CheckBox":
str += ((CheckBox)control1).Checked == true ? "\r\n"+((CheckBox)control1).Text : "";
break;
case "System.Windows.Forms.GroupBox":
str += "\r\n" + ((GroupBox)control1).Tag+":" ;
str += GetInfo(control1);
break;
case "System.Windows.Forms.Panel":
str += GetInfo(control1);
break;
}

}
return str;
}

以上代码是一个循环遍历一个窗体里的控件的方法:
问题1:foreach后面的括号里的control.Controls怎么理解。
问题2:switch后面的括号里的部分怎么理解,括号里的内容的作用是什么?
问题3:((TextBox)control1).Tag 和+((TextBox)control1).Text怎么理解?
我是菜鸟级别,希望解答者能说的详细一点儿。
...全文
156 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wywzld 2008-12-16
  • 打赏
  • 举报
回复
多谢各位了
qinhongfeng 2008-12-15
  • 打赏
  • 举报
回复
同意
weiloe 2008-12-15
  • 打赏
  • 举报
回复
顶一下
gxlqssjf 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hanyu0528 的回复:]
问题1:foreach后面的括号里的control.Controls怎么理解。

control.Controls:控件control中包含的所有子控件

问题2:switch后面的括号里的部分怎么理解,括号里的内容的作用是什么?

遍历control包含的所有的子控件的类型

问题3:((TextBox)control1).Tag 和+((TextBox)control1).Text怎么理解?

如果是TextBox类型,则强制转换成TextBox类型,然后取得Tag 和text属性!
[/Quote]
同意
zz2911 2008-12-15
  • 打赏
  • 举报
回复
正解,顶!
xxyping 2008-12-15
  • 打赏
  • 举报
回复
楼上正解
hanyu0528 2008-12-15
  • 打赏
  • 举报
回复
问题1:foreach后面的括号里的control.Controls怎么理解。

control.Controls:控件control中包含的所有子控件

问题2:switch后面的括号里的部分怎么理解,括号里的内容的作用是什么?

遍历control包含的所有的子控件的类型

问题3:((TextBox)control1).Tag 和+((TextBox)control1).Text怎么理解?

如果是TextBox类型,则强制转换成TextBox类型,然后取得Tag 和text属性!
ljhcy99 2008-12-15
  • 打赏
  • 举报
回复


问题1:foreach后面的括号里的control.Controls怎么理解。

当前窗体中的所有控件,因为所有控件继承自Control , 所以 可以这么写,还有窗体打开时 当前窗体的 所有控件都加在窗体的Controls属性里。

问题2:switch后面的括号里的部分怎么理解,括号里的内容的作用是什么?

取得每一个控件的类型,

问题3:((TextBox)control1).Tag 和+((TextBox)control1).Text怎么理解?

如果是TextBox类型,则强制转换成TextBox类型,然后取得Tag 和text属性,
Tag 属性的是存储与控件密切关联的数据,这个可以设置的。

极地_雪狼 2008-12-15
  • 打赏
  • 举报
回复
都说完了。我说什么啊
rqx110 2008-12-15
  • 打赏
  • 举报
回复
扩展功能: a. 首先满足网友的”口味”, 重新设计了所有旗子, 选择新的旗盘背景, 换了一个更清爽的面. (界面配色并不是件很容易的事情, 这样的棋类游戏长时间容易使眼睛疲劳, 首先要做到选择的色彩 不刺激眼睛,其实大部分色彩都比较刺激眼睛,尤其是纯三基色(红/黄/蓝), 还要使界面做得漂亮). b. 增加”回放” 功能. 当下完旗子时,可以重新回味一下, 刚杀完的一盘旗,可以寻找不足和重新感受 一下胜利的喜悦! 这个功能比较复杂! d. 又看了一下电脑走旗, 感觉确实比较难处理, 没有高人指点写这个算法确实比较难, 应该比以前聪明 了一些, 但是还是比较笨, 打算有空去找个现在的电脑走旗组件替换上, 自己的电脑走旗算法慢慢研 究(当时是因为实在找不到现在的组件, 自己写了个较笨的,如果哪位朋友能够提供组件,在次深表感谢!!!). e. 扩展走旗的步数容量, 有些网友, 对战的都是高手, 产生数组越界, 这次从 200 扩展到了500, 当然 您还可以扩展到更大,因为源代码已经开放). f. 增加图像缓存功能. g. 解决 .net 从framework 1.0到framework 2.0升级出现的程式升级逻辑问题及一个小bug. h. 本来我只是想把这个程式放到Blog上, 供爱好c#的网友学习,一起交流一下, 没想到反应那么的强烈! 经常收到网友的反馈邮件, 从下载量看,不到一年仅从我的下载空间(不算网友转载下载次数)就有近 二万五千次. 所以又重新看懂已经基本忘记的代码,修复了bug,并扩展了以上功能. 有可能还会增加一些功能! 另外,在此对给我提交建议和bug的朋友表示感谢!!! (开发语言: C#语言) 来自:http://community.csdn.net/Expert/topic/5237/5237003.xml?temp=.4600031

111,130

社区成员

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

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

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