【问题标题】:How do I Know the CheckBox is selected?我如何知道 CheckBox 已被选中?
【发布时间】:2011-05-31 22:03:08
【问题描述】:

我在列表框内运行时生成了复选框,问题是我怎么知道选中的复选框是什么?

我在 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
                {

                }
            }
        }
    }

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

【问题讨论】:

  • @Sofia,您发布了一个问题,几乎没有提供关于您使用什么语言、环境等进行检查的上下文。请使用相关详细信息编辑您的问题并更新标签以反映您试图获得答案的内容。
  • “它不起作用”没有回答问题。投票结束。
  • box.Checked 绝对不会做任何事情,因为它是事件。 box.IsChecked 将返回该框是否被选中。
  • Mr.coldandtired,我在条件(如果(box.IsChecked))下尝试过它给我的错误,它不能从“布尔?”到“布尔”。
  • 你确定你有listbox而不是checkedListbox吗?据我所知,标准列表框中没有复选框项目

标签: c# winforms checkbox


【解决方案1】:

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

您可以通过在任何本地方法和/或事件之外创建您的复选框来做到这一点:

CheckBox box;

然后在本地方法或事件中assign

box = new CheckBox();

然后你可以在你的代码和盒子的任何其他地方访问 box。IsChecked 将按你的意愿工作。

【讨论】:

  • 它没有用。我已经编辑了我的问题并发布了代码。请你检查一下。
【解决方案2】:

请将 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 是完美的。

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

【讨论】:

  • 谢谢。我把它换了。但仍然是同样的问题,特别是我需要知道其他循环中的复选框。
  • foreach (CheckBox box in (c_u.listBox1.Items)) { if (box.IsChecked == true) //这里有问题{
  • Sofia ,a 包含什么。在您的代码中, A 指的是未初始化的数组。也许您可以使用断点调试代码并查看每个用户的价值。
【解决方案3】:

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

字符串 selectedItem = Box.SelectedItem.Text;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 2017-09-14
    • 1970-01-01
    相关资源
    最近更新 更多