C # Показать список <class>значений в ListBox - PullRequest
0 голосов
/ 12 февраля 2012

Я добавляю класс «Procs» в качестве элемента списка:

public static List<Procs> allprocs = new List<Procs>();

Поэтому, когда пользователь заполняет форму и нажимает «Добавить процедуру»:

private void btAddProcedure_Click(object sender, EventArgs e)
{
    ClaimVars.allprocs.Add(new Procs
    {

        TreatmentBusinessID = Convert.ToInt32(proLocID.Text),
        DiagCodeID = ClaimVars.DiagID,
        CPTCodeID = ClaimVars.CPTID,
        Charges = Convert.ToDouble(txtCharges.Text),
        AmountPaid = Convert.ToDouble(txtPaid.Text),
        DateServicedFrom = Convert.ToDateTime(dateTimePicker1.Text),
        DateServicedToo = Convert.ToDateTime(dateTimePicker2.Text),
        Notes = notesDiagServ.Text
    });

    // Change the DataSource.
    listBox1.DataSource = null;
    listBox1.DataSource = ClaimVars.allprocs;
    }
}

Ониувидит новый элемент списка.

Как отобразить значения этого класса вместо добавления имени объекта?

После добавления процедур мой список выглядит следующим образом:

Project_LB223.ClaimForms.Procs
Project_LB223.ClaimForms.Procs
Project_LB223.ClaimForms.Procs
Project_LB223.ClaimForms.Procs

Вот как бы я хотел, чтобы это выглядело:

1     32     44     33.44     22.17     12/17/09 11:21:52     12/22/09 10:31:64     patient was feeling sick.
2     42     72     12.45     10.67     12/18/09 22:51:22     12/23/09 11:21:25     patient was showing signs of fatigue and shortness of breath.
1     68     57     83.64     55.47     12/19/09 23:25:45     12/24/09 15:38:42     the patient is feeling better.
5     12     22     37.44     23.45     12/22/09 16:81:11     12/25/09 19:35:22     the patient does not have any more symptoms.

Ответы [ 4 ]

1 голос
/ 12 февраля 2012

Вы можете получить макет колонки, используя

  • переопределить ToString () в классе Procs
  • использовать событие формата списка.

В обоих случаях вам необходимо установить шрифт фиксированной ширины, поэтому использование DataGrid или ListView может быть лучше.

1 голос
/ 12 февраля 2012

Например, вы можете добавить ToString() переопределение метода, например:

public class Procs
{
    public override string ToString()
    {
       string spaceinbetween = new string(' ', 5);
       return TreatmentBusinessID + spaceinbetween + DiagCodeID + spaceinbetween ...
    }
}

Надеюсь, это поможет.

1 голос
/ 12 февраля 2012

Ваши данные отображаются при звонке на ToString().Вы можете переопределить этот метод в своем классе, чтобы отображать данные так, как вам нравится.

0 голосов
/ 12 февраля 2012

A ListBox не может отображать несколько столбцов, вместо этого используйте DataGridView.

...