-1

我有一个 C# 应用程序需要两个列表框,但它们的内容是根据某些复选框的状态填充的。我已经想出了在选中复选框时如何将内容添加到列表框中,但是如果未选中相同的复选框,我希望应用程序删除相同的内容。

注意:列表框不是选中的列表框......它只是一个普通的列表框。我花了很多时间寻找(在错误的地方,我猜......)我在这里找不到任何关于我的具体问题的东西......

我拥有的功能如下所示:

private void cbCheckbox_CheckedChanged(object sender, EventArgs e)
        {
                if (cbCheckbox.Checked)  
                {
                    testlist.Add("Elemento1");
                    testlist.Add("Elemento2");
                    testlist.Add("Elemento3");
                    ltTestPool.DataSource = testlist;
                }

                else
                {                  
                    testlist.Add("Elemento1");
                    testlist.Add("Elemento2");
                    testlist.Add("Elemento3");
                    ltTestPool.DataSource = testlist;
                }
        }
4

2 回答 2

1

试试这个代码:

private void cbCheckbox_CheckedChanged(object sender, EventArgs e)
        {
                if (cbCheckbox.Checked)  
                {
                    testlist.Items.Clear();
                    testlist.Items.Add("Elemento1");
                    testlist.Items.Add("Elemento2");
                    testlist.Items.Add("Elemento3");
                    ltTestPool.DataSource = testlist;
                }

                else
                {                  
                    testlist.Items.Clear();
                    ltTestPool.DataSource = testlist;
                }
        }
于 2013-02-20T19:42:56.633 回答
0

在设置为数据源之前清除您的列表应该会有所帮助。

private void cbCheckbox_CheckedChanged(object sender, EventArgs e)
            {
                    if (cbCheckbox.Checked)  
                    {   
                        testlist.Clear();
                        ltTestPool.DataSource = null;
                        testlist.Add("Elemento1");
                        testlist.Add("Elemento2");
                        testlist.Add("Elemento3");
                        ltTestPool.DataSource = testlist;
                    }

                    else
                    {   testlist.Clear();  
                        ltTestPool.DataSource =null;            
                        testlist.Add("Elemento1");
                        testlist.Add("Elemento2");
                        testlist.Add("Elemento3");
                        ltTestPool.DataSource = testlist;
                    }


}
于 2013-02-20T19:12:18.063 回答