C# 问题foreach (Control ctrl in this.Page.Controls[3].Controls)
foreach(Controlctrlinthis.Page.Controls[3].Controls)这句中的Controls[3]中的3表示什么?publicpart...
foreach (Control ctrl in this.Page.Controls[3].Controls)
这句中的Controls[3]中的3 表示什么?
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
StringBuilder str = new StringBuilder();//定义连接字符串
foreach (Control ctrl in this.Page.Controls[3].Controls)
{
if (ctrl.GetType().Name == "CheckBox")//判断控件类型
{
CheckBox cb =(CheckBox) ctrl;//显式转换控件类型
if(cb.Checked)
str.Append(cb.Text+"<br />");//连接内容
}
}
Literal1.Text = str.ToString();//显示所选择内容
}
}
以上是全部程序,说的具体一点。 为什么2和4就不行?
第二位老师我很赞同,可是我就是不知道从哪里知道每种控件是controls[]中的几?从哪里可以看出来,我一共加了四种控件,虽然可以挨个试出了,可要是多了,可就麻烦了。对不起我又像您发问了。麻烦您告诉我,我搞不懂睡不着觉。 展开
这句中的Controls[3]中的3 表示什么?
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
StringBuilder str = new StringBuilder();//定义连接字符串
foreach (Control ctrl in this.Page.Controls[3].Controls)
{
if (ctrl.GetType().Name == "CheckBox")//判断控件类型
{
CheckBox cb =(CheckBox) ctrl;//显式转换控件类型
if(cb.Checked)
str.Append(cb.Text+"<br />");//连接内容
}
}
Literal1.Text = str.ToString();//显示所选择内容
}
}
以上是全部程序,说的具体一点。 为什么2和4就不行?
第二位老师我很赞同,可是我就是不知道从哪里知道每种控件是controls[]中的几?从哪里可以看出来,我一共加了四种控件,虽然可以挨个试出了,可要是多了,可就麻烦了。对不起我又像您发问了。麻烦您告诉我,我搞不懂睡不着觉。 展开
展开全部
那要看你的下标第3(也就是第四个)是什么控件,这个控件中有子控件,这段程序就是检测这个控件的所有子控件,找出其中的checkbox 并进行处理
如果换成2 或者4 那么他们中要不就是没有子控件,要不就是不含你想要的控件
我个人认为
控件索引号是按照控件添加到页面的顺序来决定,所以一般添加顺序不一样 这个代码就会出现不同的结果(没经过试验)
所以程序一般不会这么编写
实用的程序应该是用 findcontrol(控件id)来定位要找的控件 而不是他的index,除非你明确知道要找的控件的index
如果换成2 或者4 那么他们中要不就是没有子控件,要不就是不含你想要的控件
我个人认为
控件索引号是按照控件添加到页面的顺序来决定,所以一般添加顺序不一样 这个代码就会出现不同的结果(没经过试验)
所以程序一般不会这么编写
实用的程序应该是用 findcontrol(控件id)来定位要找的控件 而不是他的index,除非你明确知道要找的控件的index
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
搂主的问题挺有趣的...我测试了一下..
当checkbox 是第一个添加到窗体的空间...检测到最后那个才是它...当最后添加到窗体的控件时checkbox 那它是第一个检测到的...
我测试的是textbox ,原理应该是一样的...
测试的方法
private void controlPos()
{
int i=0;
foreach ( Control c in this.Controls)
{
if (c is TextBox)
{
textBox1.AppendText("textBox1!");
break;
}
else
textBox1.AppendText("unkonw!");
i++;
textBox1.AppendText(i.ToString());
}
}
private void button1_Click_2(object sender, EventArgs e)
{
controlPos();
}
当checkbox 是第一个添加到窗体的空间...检测到最后那个才是它...当最后添加到窗体的控件时checkbox 那它是第一个检测到的...
我测试的是textbox ,原理应该是一样的...
测试的方法
private void controlPos()
{
int i=0;
foreach ( Control c in this.Controls)
{
if (c is TextBox)
{
textBox1.AppendText("textBox1!");
break;
}
else
textBox1.AppendText("unkonw!");
i++;
textBox1.AppendText(i.ToString());
}
}
private void button1_Click_2(object sender, EventArgs e)
{
controlPos();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表示通过索引访问的下标。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询