C# 我如何知道复选框已选中?

C# 我如何知道复选框已选中?,c#,winforms,checkbox,C#,Winforms,Checkbox,我已经在listbox内部的运行时生成了复选框,问题是我如何知道所选的复选框是什么 我在C#中尝试了以下代码: 这是以下代码: public partial class Choose_Users { Service1Client C = new Service1Client(); Array a; user_detail d; String F_Name, L_Name; CheckBox user = new CheckBox(); publi

我已经在listbox内部的运行时生成了复选框,问题是我如何知道所选的复选框是什么

我在C#中尝试了以下代码:

这是以下代码:

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
                {

                }
            }
        }
    }
public分部类选择用户
{
Service1Client C=新的Service1Client();
阵列a;
用户详细信息d;
字符串F_Name,L_Name;
复选框用户=新建复选框();
公共选择用户()
{
初始化组件();
a=C.GetData();
for(int i=0;i

它们不起作用。有什么帮助吗?

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

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

CheckBox box;
box = new CheckBox();
然后在本地方法或事件内部分配

CheckBox box;
box = new CheckBox();

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

请将Choose_Users中的for循环替换为以下循环。以下代码每次都会创建一个新的checkbox对象

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);                
}
for(int i=0;i
关于checkstate,box.Checked是完美的


让我知道这是否对您有帮助。

我们创建字符串selectedItem,并将复选框列表的选定项分配给它,如下所示:

string selectedItem = Box.SelectedItem.Text; 字符串selectedItem=Box.selectedItem.Text;
@Sofia,您发布了一个问题,该问题几乎没有给出您用于检查此问题的语言、环境等的上下文。请使用相关详细信息编辑您的问题,并更新标记以反映您试图获得答案的内容。“它不起作用”对问题没有回应。投票关闭.box.Checked肯定不会有任何作用,因为这是一个事件。box.IsChecked将返回框是否被选中。ColdandDreat先生,我在条件下尝试过(如果(box.IsChecked))给我一个错误,它不能从'bool'转换为'bool'。你确定你有
listbox
而不是
checkedListbox
?据我所知,标准listbox中没有复选框项,它不起作用。我已经编辑了我的问题并发布了代码。你能检查一下吗?谢谢。我替换了它。但还是一样的问题,特别是我没有ed想知道其他循环中的复选框,如.foreach(c_.listBox1.Items中的复选框){if(box.IsChecked==true)//这里的问题是{Sofia,a包含什么。在您的代码中,a指的是一个单元化数组。也许您可以使用断点调试代码,并查看每个用户的值。