可以,使用反射。假设obj为你的下拉框里面的某个条目的对象 var p = obj.GetType().GetProperty(属性名); string 值 = p.GetValue(obj, null);
是winform窗体的。一样的吗。是啊。
是winform窗体的。一样的吗。是啊。 var p = comboBox.SelectedItem.GetType().GetProperty("ss"); string 值 = p.GetValue(comboBox.SelectedItem, null).ToString();是这样吗?可是报错呢。
foreach (var item in comboZJZL.SelectedItem.GetType().GetProperties()) { MessageBox.Show(item.Name); }里面有ZJLBDM么?
等等,我好像理解错了。var p = obj.GetType().GetProperty(属性名);里面的属性名应该是什么。
就是绑定的对象的属性。 class User { public int ID { get; set; } public string Name { get; set; } } 你往ListBox添加 listBox1.DisplayMember = "Name"; listBox1.ValueNumber = "ID"; listBox1.Item.Add(new User() { id = 1, Name = "abc" }); 当你选中这个以后 listBox1.SelectedValue 就是 1
var p = obj.GetType().GetProperty(属性名);
string 值 = p.GetValue(obj, null);
var p = comboBox.SelectedItem.GetType().GetProperty("ss");
string 值 = p.GetValue(comboBox.SelectedItem, null).ToString();是这样吗?可是报错呢。
{
MessageBox.Show(item.Name);
}里面有ZJLBDM么?
等等,我好像理解错了。var p = obj.GetType().GetProperty(属性名);里面的属性名应该是什么。
class User
{
public int ID { get; set; }
public string Name { get; set; }
}
你往ListBox添加
listBox1.DisplayMember = "Name";
listBox1.ValueNumber = "ID";
listBox1.Item.Add(new User() { id = 1, Name = "abc" });
当你选中这个以后
listBox1.SelectedValue 就是 1
还是搞不太懂啊,这样的话,你看我上面的图贴出来了给comboZJZL绑定的ValueNumber就是ZJLBDM啊,是我不应该取当前选中的值吗。可是我要的是我在文本框输入ValueNumber的值的时候直接出来他对应的DisplayMember啊。
例如下拉框里有这几个显示
ValueNumber DisplayMember
1 小明
2 小美
3 小红
我需要在text输入1的时候出来小明,输入2的时候出现小美这样子。
{
InitializeComponent();
List<Person> list = new List<Person>()
{
new Person(){Name="1",Adress="ChinaChinina",Age=23},
new Person(){Name="2",Adress="China",Age=11},
new Person(){Name="3",Adress="China",Age=23},
};
comboBox1.DataSource = list;
comboBox1.DisplayMember = "Adress";
comboBox1.Text = "Name"; } private void comboBox1_TextChanged(object sender, EventArgs e)
{
if (comboBox1.Text == "2")
{
comboBox1.Text = "China";
}
}
测试通过