VBA 循环遍历界面获取CheckBox 选中状态,并返回CheckBox.Text上的内容 5
循环获取的代码如下,界面中包含了N个GroupBox,N个CheckBox,如遇到GroupBox那么循环跳入继续找CheckBox,直接完成遍历查找到所有打勾的Chec...
循环获取的代码如下,界面中包含了 N个GroupBox ,N 个CheckBox,如遇到GroupBox那么循环跳入继续找CheckBox,直接完成遍历 查找到所有打勾的CheckBox名字 最后 返回
Sub SearchControls(ByRef rControls, ByRef value)
For Each sControl In rControls
If TypeOf sControl Is CheckBox Then
If CType(sControl, CheckBox).Checked = True Then
value = vale + CType(sControl, CheckBox).Text '加入值
End If
End If
If TypeOf sControl Is GroupBox Then
SearchControls(CType(sControl, Control).Controls, value)
End If
Next
End Sub
代码是在 VB下写的,但是 CType 方法 在 VBA环境下 执行不了,有什么别的方法去替换么?
求指点! 展开
Sub SearchControls(ByRef rControls, ByRef value)
For Each sControl In rControls
If TypeOf sControl Is CheckBox Then
If CType(sControl, CheckBox).Checked = True Then
value = vale + CType(sControl, CheckBox).Text '加入值
End If
End If
If TypeOf sControl Is GroupBox Then
SearchControls(CType(sControl, Control).Controls, value)
End If
Next
End Sub
代码是在 VB下写的,但是 CType 方法 在 VBA环境下 执行不了,有什么别的方法去替换么?
求指点! 展开
2个回答
展开全部
protected void Page_Load(object sender, EventArgs e)
{
CheckBox chk = new CheckBox();
chk.Text = "testall"; // 这里可以换成数据库的内容
chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
chk.AutoPostBack = true;
Page.Form.Controls.Add(chk);
for (int i = 0; i < 10; i++)
{
CheckBox chk2 = new CheckBox();
chk2.Text = "test" + i.ToString(); // 这里可以换成数据库的内容
chk2.Checked = (i % 3 == 0); // 这里可以换成数据库的内容
Page.Form.Controls.Add(chk2);
}
}
void chk_CheckedChanged(object sender, EventArgs e)
{
CheckBox all = sender as CheckBox;
foreach(Control ctl in Page.Form.Controls)
{
if (ctl is CheckBox)
{
CheckBox chk = ctl as CheckBox;
chk.Checked = all.Checked;
}
}
}
{
CheckBox chk = new CheckBox();
chk.Text = "testall"; // 这里可以换成数据库的内容
chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
chk.AutoPostBack = true;
Page.Form.Controls.Add(chk);
for (int i = 0; i < 10; i++)
{
CheckBox chk2 = new CheckBox();
chk2.Text = "test" + i.ToString(); // 这里可以换成数据库的内容
chk2.Checked = (i % 3 == 0); // 这里可以换成数据库的内容
Page.Form.Controls.Add(chk2);
}
}
void chk_CheckedChanged(object sender, EventArgs e)
{
CheckBox all = sender as CheckBox;
foreach(Control ctl in Page.Form.Controls)
{
if (ctl is CheckBox)
{
CheckBox chk = ctl as CheckBox;
chk.Checked = all.Checked;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询