2011-07-21 5 views
4

Я занимаюсь студенческим проектом для колледжа в форме выигрыша с MySQL (C#).Как я могу получить два столбца winform listbox в C#?

В этом случае я хочу переместить данные одного списка в другой список. Я сделал это. Но я загружаю имя студента в это. Теперь клиент хочет имя и adminno, как столбцы datagridview.

Я искал это. Vb имеет этот тип кодирования. См. Multi Column Listbox. Возможно ли это в C# ?.

enter image description here

Смотрите рисунок ниже. Его моя форма., ..

enter image description here

Мой код для загрузки Listbox

 MySqlConnection connection = new MySqlConnection(MyConString); 
     MySqlCommand command = connection.CreateCommand(); 
     MySqlDataReader Reader; 
     command.CommandText = "select name,admin_no from student_admision_master where course='" + course_code + "' AND year='" + year_code + "' AND sem='" + semester_code + "' AND batch='" + batch_code + "'"; 
     connection.Open(); 
     Reader = command.ExecuteReader(); 
     while (Reader.Read()) 
     { 
      listBox1.Items.Add(Reader[0].ToString() + "," + Reader[1].ToString()); 
     } 
     connection.Close(); 

Это дать результат jagadees, 125445. Но хочу несопоставимых отдельные столбцы.

Мой код для перемещения данных в

private void btn_toAb_Click_Click(object sender, EventArgs e) 
{ 
    int count = listBox1.Items.Count; 
    for (int i = 0; i < count; i++) 
    { 
     listBox2.Items.Add(listBox1.Items[i].ToString()); 
    } 
    listBox1.Items.Clear(); 
} 

private void btn_fromAb_Click_Click(object sender, EventArgs e) 
{ 
    int count = listBox2.Items.Count; 
    for (int i = 0; i < count; i++) 
    { 
     listBox1.Items.Add(listBox2.Items[i].ToString()); 
    } 
    listBox2.Items.Clear(); 
} 

private void btn_toAb_Selected_Click(object sender, EventArgs e) 
{ 
    int count = listBox1.SelectedItems.Count; 
    for (int i = 0; i < count; i++) 
    { 
     listBox2.Items.Add(listBox1.SelectedItems[i].ToString()); 
    } 

    for (int i = 0; i < count; i++) 
    { 
     listBox1.Items.Remove(listBox1.SelectedItems[0]); 
     //listBox1.add 

    } 
} 

private void btn_fromAb_Selected_Click(object sender, EventArgs e) 
{ 
    int count = listBox2.SelectedItems.Count; 
    for (int i = 0; i < count; i++) 
    { 
     listBox1.Items.Add(listBox2.SelectedItems[i].ToString()); 
    } 

    for (int i = 0; i < count; i++) 
    { 
     listBox2.Items.Remove(listBox2.SelectedItems[0]); 
    } 
} 

Заранее спасибо! ...

ответ

10

Control "ListView" Windows Forms может сделать это.

+0

благодарит за информацию. ,, – Sagotharan

2

Вы можете сделать это, используя метод String.Format(). Внутри каждый метод yoz определяет выравнивание каждого элемента в строке. У меня нет db, но вместо этого в моем примере я использую два массива (такие же, как ваши читатели [0] и читатели [1]). Итак, вместо array1 [i] и array2 [i] вы используете Reader [0] и Reader [1]. Образец цитирования:

 string[] array1 = { "name 1", "name10", "name104", "name 222", "name 3212" }; 
     string[] array2 = { "12343", "23", "432", "4333", "1" }; 

     const int a = 40; 
     int b = 0; 

     for (int i = 0; i < array1.Length; i++) 
     { 
      if (array1[i].Contains(' ')) 
       b = array1[i].Length - 1; 
      else 
       b = array1[i].Length; 
      b = -(a - b); 
      listBox1.Items.Add(String.Format("{0," + b + "} {1}", array1[i], array2[i])); 
     } 
Смежные вопросы