0

誰かが私がここで間違っていることを教えてもらえますか? フォームのリストボックスに表示したいデータベース クラスのリストがありますが、何も表示されません。データを入力する最初のフォームのボタンクリックからフォームを呼び出し、そのフォームにリストボックスを配置すると機能しますが、それが理にかなっている場合にのみデータを表示する別のフォームを開きたいです? リストの内容を表示したいフォームのコードは次のとおりです。

public partial class Summary : Form
{
    public Summary()
    {
        InitializeComponent();
    }


    private Database viewlist = new Database();

    private void Summary_Load(object sender, EventArgs e)
    {

    }

    private void sum()
    {
        List<String> listofPicks = viewlist.listPickups();
        listBox1.Items.AddRange(listofPicks.ToArray());
    }

    private void button1_Click(object sender, EventArgs e)
    {
        sum();
    }

}

また、このコードがすべて同じフォームで実行された場合に機能することを明確にしておいてください。

4

1 に答える 1

0

ボタンをクリックするのではなく、フォームがロードされたときにリストをロードしてください:

public partial class Summary : Form
{
    private Database _viewlist = new Database();

    public Summary()
    {
        InitializeComponent();
    }

    private void Summary_Load(object sender, EventArgs e)
    {
        LoadList();
    }

    private void LoadList()
    {
        listBox1.Items.Clear();
        listBox1.Items.AddRange(_viewlist.Pickups.ToArray());
    }
}

public class Database
{
    public List<string> Pickups
    {
        get { return new List<string> {"alfa", "beta"}; }
    }
}
于 2012-11-26T20:55:03.670 に答える