如何将类的列表添加到listboxbox1并将所选项目移动到listbox2
本文关键字:选项 项目 移动 listbox2 listboxbox1 列表 添加 | 更新日期: 2023-09-27 18:22:50
我有两个列表框我想从数据库中将id和值填入listbox1。然后,我想将所选项目添加到列表框2,并从名单框1中删除项目。
List<Plan> lstPlan = new List<Plan>();
SqlDataReader rd = null;
try
{
STS_STORE_PROC_SCHEME.GetPlanParameter objInsert = new STS_STORE_PROC_SCHEME.GetPlanParameter();
objInsert.GetPlan_fun(ref rd, ref ds, SqlReturnType.DATASET_sts);
//while (rd.Read())
//{
// lstPlan.Add(new Plan(Convert.ToInt32(rd[0].ToString()), rd[1].ToString()));
//}
//for (int i = 0; i < lstPlan.Count; i++)
//{
// listBox1.Items.Add(lstPlan[i].ToString());
// //from.Items.Remove(items[i]);
//}
listBox1.DataSource = ds.Tables[0].DefaultView;
listBox1.DisplayMember = "Planname";
listBox1.ValueMember = "nvcharPlanName";
}
catch (Exception ex)
{
}
其给出错误
当DataSource属性为设置
我想您需要修改支持列表框(ds.Tables[0]
)的数据,并将其重新绑定到列表框,就像您在以下行所做的那样:
listBox1.DataSource = ds.Tables[0].DefaultView;
类似地,对于从一个列表框添加和删除到另一个列表盒,简单地说,您可以
- 定义两个列表
- 对这些列表进行操作(互相添加项目,去除等等)
- 将这些列表设置为单个
listboxes
的DataSource
s
编辑:
代码段。。
Dictionary<int, Plan> dicPlan1 = new Dictionary<int, Plan>();
dicPlan1.Add(1, new Plan());
dicPlan1.Add(2, new Plan());
dicPlan1.Add(3, new Plan());
dicPlan1.Add(4, new Plan());
listbox1.DataSource = new List<Plan>(dicPlan1.Values); //this will get you only the plans
Dictionary<int, Plan> dicPlan2 = new Dictionary<int, Plan>();
dicPlan2.Add(1, new Plan());
dicPlan2.Add(2, new Plan());
dicPlan2.Add(3, new Plan());
dicPlan2.Add(4, new Plan());
listbox2.DataSource = new List<Plan>(dicPlan2.Values); //this will get you only the plans
然后,如果您想将第一个集合添加到第二个集合:
dicPlan2.Add(dicPlan1[1]);
使用索引从集合中删除
dicPlan1.RemoveAt(0); // removes the first item!! (not this => dicPlan2.Add(1, new Plan());)
就这么简单。。不要忘记。为了在列表框中查看更新,您需要在更改列表后再次设置数据源。
listbox1.DataSource = new List<Plan>(dicPlan1.Values);
listbox2.DataSource = new List<Plan>(dicPlan2.Values);
希望能有所帮助。