gpt4 book ai didi

c# - 取消选择列表框值

转载 作者:太空宇宙 更新时间:2023-11-03 19:26:57 25 4
gpt4 key购买 nike

我正在从一个 ListBox 中选择项目,然后在单击按钮时将它们添加到第二个 ListBox 中。问题是,当我想从 listbox2 中取消选择选定的项目时,它会出现“对象引用未设置为对象的实例”错误。下面是我在 SELECT 按钮后面添加的代码。我使用了相同的代码来取消选择,其中 listbox1 替换为 listbox2,反之亦然。

注意:正在从数据库中检索 listbbox1 中的项目,在 listbox2 中选择的项目将保存到数据库中

List<int> rowIndexes = new List<int>();

foreach (int index in listBox1.SelectedIndices)
{
DataRowView view = listBox1.Items[index] as DataRowView;
string id = view["Course_Id"].ToString();
string name = view["Course_Name"].ToString();
listBox2.Items.Add(name);
rowIndexes.Add(index);
}

try
{
for (int i = rowIndexes.Count; i > 0; i--)
{
dt.Rows.RemoveAt(rowIndexes[i - 1]);
dt.AcceptChanges();
}
}

catch (Exception er)
{
MessageBox.Show(er.Message);
}

最佳答案

这充其量只是一个猜测,因为它在第一行失败的说法毫无意义。

我的精神力量告诉我,这实际上失败了

string id = view["Course_Id"].ToString();

因为 View 为空。问题是

DataRowView view = listBox1.Items[index] as DataRowView;

正在尝试将项目从 ListBox 转换为 DataRowView。这将始终返回 null,除非出于某些(奇怪的)原因您使用 DataRowView 的集合填充了 ListBox.Items。

编辑

您可能正在用 DataRowView 填充 listBox1,但您正在用 System.String 填充 listBox2:

string name = view["Course_Name"].ToString();
listBox2.Items.Add(name);

尝试将其更改为

//string id = view["Course_Id"].ToString();
//string name = view["Course_Name"].ToString();
listBox2.Items.Add(view);

关于c# - 取消选择列表框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7912906/

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