这个关于ListBox的操作为什么会报错?
[code=C#][/code]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
listBox1.DisplayMember = "UserID";
listBox1.ValueMember = "Name";
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Add(new Class1() { UserID = 1, Name = "A" });
listBox1.Items.Add(new Class1() { UserID = 2, Name = "B" });
listBox1.Items.Add(new Class1() { UserID = 3, Name = "C" });
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex != -1)
{
textBox1.Text = listBox1.SelectedValue.ToString(); //
未将对象引用设置到对象的实例 }
}
}
class Class1
{
public int UserID { get; set; }
public string Name { get; set; }
}
上面的代码,为什么会报错呢?----未将对象引用设置到对象的实例
我设置了DisplayMember属性的值和ValueMember属性的值,为什么报错呢?
------解决方案--------------------
哥哥你还没绑定数据源,指定那两属性有什么用啊??
------解决方案--------------------因为在ListBox初始化的时候,就会自动触发一次SelectedChanged事件。
你在事件中需要对ListBox的空与否进行判断。
------解决方案--------------------listBox1.SelectedValue改为listBox1.SelectedItem
------解决方案--------------------不是所有的控件都需要绑定数据源的。少年们。
不要束缚lz的各种想法。
只要把原理给lz就好了。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------刚试了下,绑定数据后也会报错,是不是那个类写错了?到底是哪的问题?
------解决方案-------------------- listBox1.Items.Add(new Class1() { UserID = 1, Name = "A" });
这行代码是这么加么? 为什么后面的listBox1.SelectedValue为null?
------解决方案--------------------高手们 你们谁调试个能用的代码出来贴一下吧 顺便学习一下 以前用Add方法从来就没这么用过
------解决方案--------------------我说的lz爱信不信。
还有,最起码的,在用一个对象的属性的时候,都要先判定对象的空与否吧。
------解决方案--------------------
List<Class1> list=new List<Class1>();
list.Add(new Class1());
list.Add(new Class1());
list.Add(new Class1());
list.Add(new Class1());
listBox1.DataSource=list;
------解决方案--------------------将代码改一下,就可以了。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex != -1)
{
Class1 class1 = listBox1.SelectedItem as Class1;
textBox1.Text = class1.Name;
}
}
------解决方案--------------------