日期:2014-05-20  浏览次数:20787 次

怎样遍历Form中所有自动生成的CheckedListBox(急)
如题:

怎样遍历Form中所有自动生成的CheckedListBox

遍历想查看每个CheckedListBox有多少被选中,多少没选!

请各位帮忙   开解

------解决方案--------------------
foreach (CheckBox cb in Form.Controls)
{
if (cb.Checked)
{
selectTypeCount++;
}
}
if (selectTypeCount == 0)
{
error.SetError(groupBox1, "请至少选择一种图片类型 ");
}
else
{
error.SetError(groupBox1, " ");
}

本人的程序代码。我用的是CheckBox,你用的是CheckedListBox,我想这个不难改成你希望的代码。
------解决方案--------------------
我以前是这样解决的,改变控件的外观,稍加修改应该适用于你的要求,不知道有没有更好的办法。

foreach (Control c in this.Controls)
{
string s = c.GetType().ToString();
switch (s)
{
case "System.Windows.Forms.Button ":
{
Button b = (Button)c;
if (b.FlatStyle == FlatStyle.Flat)
{
b.FlatStyle = FlatStyle.Standard;
}
else
{
b.FlatStyle = FlatStyle.Flat;
}
break;
}
case "System.Windows.Forms.TextBox ":
{
TextBox t = (TextBox)c;
if (t.BorderStyle == BorderStyle.FixedSingle)
{
t.BorderStyle = BorderStyle.Fixed3D;
}
else
{
t.BorderStyle = BorderStyle.FixedSingle;
}
break;
}
}
}
------解决方案--------------------
public class Form1 : Form
{
private GroupBox groupBox1;
private CheckedListBox checkedListBox2;
private GroupBox groupBox2;
private CheckedListBox checkedListBox3;
private CheckedListBox checkedListBox1;
private TextBox textBox1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
private Label label1;

/// <summary>
/// 找到CheckedListBox的数量
/// </summary>
private int m_ctrlCount;

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name= "disposing "> 如果应释放托管资源,为 true;否则为 false。 </param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

#region Windows 窗体设计器生成的代码

/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.checkedListBox1 = new System.Windows.Forms.CheckedListBox();
this.checkedListBox2 = new System.Windows.Forms.CheckedListBox();
this.checkedListBox3 = new System.Windows.Forms.CheckedListBox();