using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, System.EventArgs e)
        {
            listBox1.Items.Add("One");
            listBox1.Items.Add("Two");
            listBox1.Items.Add("Three");
        }        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if ((string)listBox1.SelectedItem == "Two")
                MessageBox.Show((string)listBox1.SelectedItem);        }
    }
}

解决方案 »

  1.   

    看csdn里面的c#速成,他里面讲的很略,怎么编译也达不到预期的效果
      

  2.   

    此示例需要: 一个名为 Form1 的窗体,包含一个名为 listBox1 的 ListBox 控件。将 Form1 的 Load 事件处理程序设置为 Form1_Load。将 listBox1 的 SelectedIndexChanged 事件处理程序设置为 listBox1_SelectedIndexChanged。这个是MSDN给出的说明
      

  3.   

    我在designer里面只加了一个listbox控件
      

  4.   

    你看看 listbox的事件是否 已经和 listBox1_SelectedIndexChanged 绑定
      

  5.   

    单单这个问题:选中listbox1--属性---时间---selectindexchanged--看看是不是和你的一样。
      

  6.   

    this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged);在Form1.Designer.cs文件中找到上面这句
      

  7.   

    在窗体设计里面,选中这个listbox,然后在属性栏里面的 方法(就是类似小闪电的那个)选项下 找到listbox的 SelectedIndexChanged 方法,看看后面是不是已经包含了函数。
      

  8.   

     private void Form1_Load(object sender, EventArgs e)
        {
          listBox1.Items.Add("One");
          listBox1.Items.Add("Two");
          listBox1.Items.Add("Three");
          listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged);
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
          if ((string)listBox1.SelectedItem == "Two")
            MessageBox.Show((string)listBox1.SelectedItem);    }
      

  9.   

     编译之后listbox上什么数据都没有,我怀疑是不是form_load开始就错了
      

  10.   


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace WindowsFormsApplication5
    {
      public partial class Form1 : Form
      {
      public Form1()
      {
           InitializeComponent();
            this.Load += new System.EventHandler(this.Form1_Load);
            //this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged);  已经有的话就不要了
           }  private void Form1_Load(object sender, System.EventArgs e)
      {
      listBox1.Items.Add("One");
      listBox1.Items.Add("Two");
      listBox1.Items.Add("Three");
      }  private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
      {
      if ((string)listBox1.SelectedItem == "Two")
      MessageBox.Show((string)listBox1.SelectedItem);  }
      }
    }
      

  11.   

    你没有双击Form吧,你的Load事件就没执行
    解决方法两种
    1、按照我上面的做
    2、双击Form自动跳到
     private void Form1_Load(object sender, System.EventArgs e)
      {
      }
    然后在里面写
      listBox1.Items.Add("One");
      listBox1.Items.Add("Two");
      listBox1.Items.Add("Three");
      

  12.   

    谢谢大家,总结一下,就是我的代码直接是msdn里面copy到Form1.cs里面的,而不是通过双击窗体加进去的,导致和事件没有绑定希望新手不要再犯我这样的错误