gpt4 book ai didi

c# - 将 ListBox DataSource 属性设置为 null 以更改列表项是否错误?

转载 作者:行者123 更新时间:2023-11-30 22:00:19 25 4
gpt4 key购买 nike

我发现当列表框已通过数据源填充时,Items.Clear 并不总是清除列表框。将 DataSource 设置为 Null 允许使用 Items.Clear() 清除它。

这样做是错误的方法吗?这样做是不是我的想法有点不对?

谢谢。

下面是我准备用来说明我的问题的代码。它包括一个列表框和三个按钮。

如果按此顺序单击按钮,一切正常:

  1. 用数组按钮填充列表
  2. 用数组按钮填充列表项
  3. 使用数据源按钮填充列表项

但是如果您先单击“使用数据源填充列表项”按钮,则单击其他两个按钮中的任何一个都会导致此错误:“System.Windows.Forms.dll 中出现类型为‘System.ArgumentException’的未处理异常"with "设置 DataSource 属性后无法修改项目集合。"

评论?

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnFillListWithArray_Click(object sender, EventArgs e)
{
string[] myList = new string[4];

myList[0] = "One";
myList[1] = "Two";
myList[2] = "Three";
myList[3] = "Four";
//listBox1.DataSource = null; <= required to clear list
listBox1.Items.Clear();
listBox1.Items.AddRange(myList);
}

private void btnFillListItemsWithList_Click(object sender, EventArgs e)
{
List<string> LStrings = new List<string> { "Lorem", "ipsum", "dolor", "sit" };
//listBox1.DataSource = null; <= required to clear list
listBox1.Items.Clear();
listBox1.Items.AddRange(LStrings.ToArray());

}

private void btnFillListItemsWithDataSource_Click(object sender, EventArgs e)
{
List<string> LWords = new List<string> { "Alpha", "Beta", "Gamma", "Delta" };
//listBox1.DataSource = null; <= required to clear list
listBox1.Items.Clear();
listBox1.DataSource = LWords;

}
}

最佳答案

根据 Microsoft 的说法,将数据源设置为 Null 然后清除列表是可以接受的。

来源:http://support.microsoft.com/kb/319927

关于c# - 将 ListBox DataSource 属性设置为 null 以更改列表项是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com