【问题标题】:dynamically added check boxes are not displaying in listview动态添加的复选框未显示在列表视图中
【发布时间】:2015-01-12 14:02:31
【问题描述】:

我正在尝试在列表视图框中动态插入复选框。添加滚动条时滚动条,但我在列表视图框中看不到复选框。就好像它们是隐形的一样。

另一件事是当我将代码从 listBox1.Items.Add(box) 更改为 listBox1.Controls.Add(box) 时,我在列表框中只看到一个复选框。

这是我的代码,如下所示:

vouchersList 是 15 个字符串的列表。

 for (int i = 0; i < vouchersList.Count; i++)
 {
     CheckBox box = new CheckBox();
     box.Tag = i.ToString();
     box.Text = vouchersList[i];     
     listBox1.Items.Add(box);

 }  

【问题讨论】:

  • 你有没有得到任何错误?顺便说一句,仅出于测试目的尝试 box.Text = i.ToString();而不是 box.Text = couponsList[i];看看它是如何工作的。顺便说一句,这是一个很好的示例; msdn.microsoft.com/en-us/library/…。最好的问候,
  • @AlexBell 我没有收到任何错误。我试过 box.Text=i.ToString() 但同样的事情正在发生。列表框的滚动条像正在添加的东西一样滚动,但没有任何东西可见。
  • 当我将代码更改为 listBox1.Controls.Add(box) 但只出现一个复选框时,列表框中的复选框如何出现
  • 你设置了属性吗? listView1.CheckBoxes = true;就像 MSDN 上的例子一样?
  • @AlexBell thnx 我从下面的答案中找到了解决方案

标签: c# winforms


【解决方案1】:

你可以使用 CheckedListBox insted of ListBox,然后你做这样的事情:

        CheckedListBox ClistBox1 = new CheckedListBox();
        ClistBox1.FormattingEnabled = true;
        ClistBox1.Location = new System.Drawing.Point(12, 12);
        ClistBox1.Name = "listBox1";
        ClistBox1.Size = new System.Drawing.Size(278, 290);
        ClistBox1.TabIndex = 0;
        this.Controls.Add(ClistBox1);

        for (int i = 0; i < 20; i++)
        {
            ClistBox1.Items.Add("Box" + i, true); //Second parameter is "Checked" true or false
        }  

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多