首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

这个关于ListBox的操作为什么会报错?该怎么处理

2012-04-23 
这个关于ListBox的操作为什么会报错?[codeC#][/code]public partial class Form1 : Form{public Form1(){

这个关于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就好了。
[解决办法]

探讨

因为在ListBox初始化的时候,就会自动触发一次SelectedChanged事件。

你在事件中需要对ListBox的空与否进行判断。

[解决办法]
探讨

如果绑定的话,初始化的时候就不会触发;不是绑定的话,要触发的

[解决办法]
刚试了下,绑定数据后也会报错,是不是那个类写错了?到底是哪的问题?
[解决办法]
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; 
}
}
[解决办法]
探讨

将代码改一下,就可以了。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)


{
if (listBox1.SelectedIndex != -1)
{
Class1 class1 = listBox1……

热点排行