C# Listbox从另一个Listbox绑定
我的表单中有两个列表框,两个框之间有一个按钮。在第一个框中,我绑定了数据库中的一些数据,从这个列表框中,我必须选择项目,并且应该在第二个列表框中显示那些选定的项目。这应该在我单击按钮时发生。我使用了以下代码。我使用了哈希表C# Listbox从另一个Listbox绑定,c#,winforms,C#,Winforms,我的表单中有两个列表框,两个框之间有一个按钮。在第一个框中,我绑定了数据库中的一些数据,从这个列表框中,我必须选择项目,并且应该在第二个列表框中显示那些选定的项目。这应该在我单击按钮时发生。我使用了以下代码。我使用了哈希表 private void btnCATAdd_Click(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht.Add(lbCATallSubcat.SelectedValue.ToS
private void btnCATAdd_Click(object sender, EventArgs e)
{
Hashtable ht = new Hashtable();
ht.Add(lbCATallSubcat.SelectedValue.ToString(),
lbCATallSubcat.Text.ToString());
int i = 0;
foreach (string ent in ht.Values)
{
string[] name = new string[lbCATallSubcat.Items.Count];
for (i = 0; i < lbCATallSubcat.SelectedItems.Count; i++)
{
name[i] = lbCATallSubcat.Text;
this.lbCATSelectedSubcat.Items.Add(name[i]);
}
lbCATSelectedSubcat.DisplayMember = ht.Values.ToString();
lbCATSelectedSubcat.ValueMember = ht.Keys.ToString();
}
}
private void btncatad_单击(对象发送者,事件参数e)
{
Hashtable ht=新的Hashtable();
ht.Add(lbcatalSubcat.SelectedValue.ToString(),
lbcatalSubcat.Text.ToString());
int i=0;
foreach(ht.Values中的字符串ent)
{
string[]name=新字符串[lbcatalSubcat.Items.Count];
对于(i=0;i
当我在第一个列表框中只选择一个项目时,它可以正常工作,但当从第一个列表框中选择多个项目时,我无法显示
private void btnCATAdd_Click(object sender, EventArgs e)
{
Hashtable ht = new Hashtable();
for(int i=0;i<lbCATallSubcat.Items.Count;i++)
{
if(ht.items[i].Selected)
{
ht.Add(lbCATallSubcat.Items[i].Value.ToString(),
lbCATallSubcat.Items[i].Text.ToString());
}
}
i = 0;
foreach (string ent in ht.Values)
{
string[] name = new string[lbCATallSubcat.Items.Count];
for (i = 0; i < lbCATallSubcat.SelectedItems.Count; i++)
{
name[i] = lbCATallSubcat.Text;
this.lbCATSelectedSubcat.Items.Add(name[i]);
}
lbCATSelectedSubcat.DisplayMember = ht.Values.ToString();
lbCATSelectedSubcat.ValueMember = ht.Keys.ToString();
}
}
private void btncatad_单击(对象发送者,事件参数e)
{
Hashtable ht=新的Hashtable();
对于(int i=0;i您应该在该列表框上使用SelectedItems
属性,而不是SelectedValue
。当前您的哈希表只包含一个元素
请参见是否需要哈希表?使用LINQ
,您可以执行以下操作:
public ObjHoldingData
{
public Display { get; set; }
public Value { get; set; }
}
public class Form
{
Form()
{
var dataList = new List<ObjHoldingData>();
//TODO: Fill list with all the data you pulled
Listbox1.Datasource = dataList;
Listbox1.DisplayMember = "Display";
Listbox1.ValueMember = "Value";
}
protected void ButtonClick()
{
Listbox2.Datasource = Listbox1.SelectedItems.Cast<ObjHoldingData>().ToList();
Listbox2.DisplayMember = "Display";
Listbox2.ValueMember = "Value";
}
}
var ht = new Hashtable(ListBox1.SelectedItems.Cast<ObjHoldingData>().ToDictionary(o => o.Display, o => o.Value));