我如何知道CheckBox被选中?

时间:2011-05-30 18:27:01

标签: c# winforms checkbox

我在listbox中生成了checkboxesat运行时,问题是如何知道所选的复选框是什么?

我在C#中试过以下代码:

CheckBox box;
if ( box.Checked )
if ( box.IsChecked )

这是以下代码:

public partial class Choose_Users
{
    Service1Client C = new Service1Client();
    Array a;
    user_detail d;
    String F_Name, L_Name;
    CheckBox user = new CheckBox();

    public Choose_Users()
    {
        InitializeComponent();
        a = C.GetData();            

        for (int i = 0; i < a.Length; i++)
        {
            d = (user_detail)a.GetValue(i);                
            user.Name = d.First_name;
            user.Content= d.First_name;
            listBox1.Items.Add(user);                
        }
    }
    private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        List<user_detail> list = new List<user_detail>();
            foreach(CheckBox box in this.listBox1.Items)
            {
                if (box.Checked  // here my problem is
                {

                }
            }
        }
    }
他们没有工作。有什么帮助吗?

3 个答案:

答案 0 :(得分:0)

无论编程语言如何,您都需要保留对动态创建的复选框的引用。

您可以通过在任何本地方法和/或事件之外创建您的复选框来执行此操作:

CheckBox box;

然后在本地方法或事件中指定

box = new CheckBox();

然后您可以在代码和框中的任何其他位置访问 .IsChecked将按您的需要工作。

答案 1 :(得分:0)

请使用以下内容替换Choose_Users中的for循环。以下代码每次都会创建一个新的复选框对象。

for (int i = 0; i < a.Length; i++)
{
   CheckBox user = new CheckBox();
   d = (user_detail)a.GetValue(i);
   user.Name = d.First_name;
   user.Content= d.First_name;
   listBox1.Items.Add(user);                
}

关于checkstate,box.Checked是完美的。

如果这有助于你,请告诉我。

答案 2 :(得分:0)

我们创建字符串选择的项目,并为其分配checkboxList的所选项目,如下所示:

string selectedItem = Box.SelectedItem.Text;