2015-09-20 56 views
0

我正在处理窗体窗体应用程序。我有一个组合框和一个列表框。在我的组合框中,我有5个项目,我想显示从组合框到列表框中选择的相应项目。如何显示从组合框到列表的对应项目框

假设我选择第1项,它会显示项目1.如果我选择项目2,它将显示项目2和项目1将消失,反之亦然。到目前为止,我已经尝试了这个代码

listBox1.Items.Add(name) 

此列表框添加statment添加到列表框中的新项目,如项目1,项目2,项目3等等,这不是我想要的。

using System.IO; 
using System; 

class Program 
{ 
    static void Main() 
    { 
     Console.WriteLine("Hello, World!"); 


     private void fill_checkListBox() 
     { 
      myConn = new SqlConnection("Server = localhost; Initial Catalog= dbName; Trusted_Connection = True"); 

      try 
      { 
       myConn.Open(); 

       int index = applicationComboBox.SelectedIndex + 1; 
       string query = " SELECT td.chineseName, ad.applicationId, aud.applicationId, ad.applicationName FROM[AppUser_Detail] as aud LEFT OUTER JOIN[Teacher_Detail] as td ON aud.teacherId = td.teacherId LEFT OUTER JOIN[Application_Detail] as ad ON aud.applicationId = ad.applicationId LEFT OUTER JOIN[Class_Detail] as cd ON aud.classId = cd.classId where aud.applicationId = '" + index + "' AND NOT(td.teacherId IS NULL AND cd.classId IS NULL)"; 
       myCommand = new SqlCommand(query, myConn); 

       SqlDataReader dr = myCommand.ExecuteReader(); 

       //Reading all the value one by one 
       while (dr.Read()) 
       { 
        //column is 1 in Application_Detail Data 



         //string value = applicationComboBox.GetItemText(applicationComboBox.Items[i]); 
         string name = dr.GetString(0); 
teacherCheckListBox.Items.Clear();\ updated this line teacherCheckListBox.Items.Add(name); 

       } 
       //teacherCheckListBox.DataSource = dt; 
       myConn.Close(); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 
    } 
} 

回答

1

试试这个代码...

private void fill_checkListBox() 
{ 
    myConn = new SqlConnection("Server = localhost; Initial Catalog= ChungSingDB; Trusted_Connection = True"); 

    try 
    { 
     myConn.Open(); 

     int index = applicationComboBox.SelectedIndex; 
     string query = " SELECT td.chineseName, ad.applicationId, aud.applicationId, ad.applicationName,class, secondary FROM[AppUser_Detail] as aud LEFT OUTER JOIN[Teacher_Detail] as td ON aud.teacherId = td.teacherId LEFT OUTER JOIN[Application_Detail] as ad ON aud.applicationId = ad.applicationId LEFT OUTER JOIN[Class_Detail] as cd ON aud.classId = cd.classId where aud.applicationId = '" + index + "' AND NOT(td.teacherId IS NULL AND cd.classId IS NULL)"; 
     myCommand = new SqlCommand(query, myConn); 

     SqlDataReader dr = myCommand.ExecuteReader(); 

     teacherCheckListBox.Items.Clear(); 


     while (dr.Read()) 
     { 

      string name = ""; 

      name = dr.GetString(0); 

      if (applicationComboBox.SelectedIndex == index) 
      { 

       teacherCheckListBox.Items.Add(name); 

      } 

     } 
     myConn.Close(); 
    } 
    catch (Exception ex) 
    { 
    MessageBox.Show(ex.Message); 
    } 
} 
+0

谢谢大家的帮助,这是正确的答案:) – RedRocket

1

使用listbox1.Items.Clear(),这将清除整个列表,然后将新鲜的项目添加到列表框中。

1
alot of ways to do this 
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     listBox1.Items.Clear(); 
     listBox1.Items.Add(comboBox1.Text); 
    } 
相关问题