winform中关于listbox设置多选后的取值this.listBox1.DisplayMember="SymptomName";
this.listBox1.ValueMember="SymptomID";//this.listBox1.DisplayMember="SymptomID"; //这个可以确定SymptomID确实有值 显示正常
//this.listBox1.ValueMember="SymptomID";然后我用
if (this.listBox1.ValueMember!="")
{ for(int i=0;i<this.listBox1.SelectedItems.Count;i++)
{
string a +=this.listBox1.SelectedValue.ToString();
string b +=this.listBox1.GetItemText(this.listBox1.SelectedItems[i]);
string c +=this.listBox1.SelectedItems[i].tostring()
}
}
a 得到的是同一条即点击的那条
b 得到的是所有选中的纪录的显示值 即SymptomName
c 得到的根离谱 全是"System.Data.DataRowView"我想得到的是所有选中纪录的Value值 请问到底该怎么得到呢?
this.listBox1.ValueMember="SymptomID";//this.listBox1.DisplayMember="SymptomID"; //这个可以确定SymptomID确实有值 显示正常
//this.listBox1.ValueMember="SymptomID";然后我用
if (this.listBox1.ValueMember!="")
{ for(int i=0;i<this.listBox1.SelectedItems.Count;i++)
{
string a +=this.listBox1.SelectedValue.ToString();
string b +=this.listBox1.GetItemText(this.listBox1.SelectedItems[i]);
string c +=this.listBox1.SelectedItems[i].tostring()
}
}
a 得到的是同一条即点击的那条
b 得到的是所有选中的纪录的显示值 即SymptomName
c 得到的根离谱 全是"System.Data.DataRowView"我想得到的是所有选中纪录的Value值 请问到底该怎么得到呢?
tb.Text = "";
int i=lb.SelectedItems.Count;
for(int n=0;n<i;n++)
{
tb.Text += lb.SelectedItems[n].ToString() + " ";
}
我前面说过了
lb.SelectedItems[n].ToString();
取出的结果全是"System.Data.DataRowView"
{
MessageBox.Show(this.listBox1.SelectedItems[i].ToString());
}
for (int x = 0; x < listBox1.Items.Count; x++)
{
if(listBox1.GetSelected(x) == true)
{
str += listBox1.SelectedItems[x].ToString();
}
}
MessageBox.Show(str);
{
string a=listBox1.SelectedItems[i].ToString();
MessageBox.Show(a.ToString());
}
dt = ...
实现第一种方法
添加:
foreach(System.Data.DataRow row in dt.Rows)
{
this.listBox1.Items.Add(row["SymptomID"].ToString());
}
选择:
for(int i=0;i<this.listBox1.SelectedItems.Count;i++)
{
MessageBox.Show(this.listBox1.SelectedItems[i].ToString());
}实现第二种方法
绑定:
this.listBox1.DataSource = dt;
this.listBox1.DisplayMember="SymptomName";
this.listBox1.ValueMember="SymptomID";
选择:
for(int i=0;i<this.listBox1.SelectedIndices.Count;i++)
{
MessageBox.Show(((DataRowView)(this.listBox1.SelectedItems[i])).Row["SymptomID"].ToString());
}
dt = ...
实现第一种方法
添加:
foreach(System.Data.DataRow row in dt.Rows)
{
this.listBox1.Items.Add(row["SymptomID"].ToString());
}
选择:
for(int i=0;i<this.listBox1.SelectedItems.Count;i++)
{
MessageBox.Show(this.listBox1.SelectedItems[i].ToString());
}实现第二种方法
绑定:
this.listBox1.DataSource = dt;
this.listBox1.DisplayMember="SymptomName";
this.listBox1.ValueMember="SymptomID";
选择:
for(int i=0;i<this.listBox1.SelectedIndices.Count;i++)
{
MessageBox.Show(((DataRowView)(this.listBox1.SelectedItems[i])).Row["SymptomID"].ToString());
}
wmt85(深山老翁)正解 谢谢大家