1

デスクトップアプリケーション用の次のc#コードがあります。Panel1データベース関数によって返された値を取得することにより、コントロールを動的に追加します。

private void loadData()
        {
            string[] names = dops.get_lstMed(textBox2.Text); //fetching values from database
            MediRow[] mr = new MediRow[names.Length]; //User control array
            panel1.Controls.Clear();
            for (int i = 0; i < names.Length; i++)
            {
                mr[i] = new MediRow();
                mr[i].MedName = names[i];
                mr[i].AvailQty = dops.get_Med_qty(names[i]).ToString();
                mr[i].Quantity = "0";
                panel1.Controls.Add(mr[i]);
            }

        }

私がそれをデバッグしたとき、データベース関数によって返された値dops.get_lstMed()は正しく、ループも正常に機能しています。しかし問題は、データベースに複数の行がある場合でも、パネルにコントロールが 1 つしか追加されないことです。コードの何が問題なのか教えてください。

4

2 に答える 2

4

@ChrisSinclair は正しいかもしれません:mr[i].Dock = DockStyle.Top;コントロールのプロパティを入力する場所を設定してみてください。

于 2012-09-18T11:12:07.337 に答える
1

このコードは機能しているかもしれませんが、同じ位置に作成しているため機能していないようで、追加するコントロールのLocationプロパティを変更する必要があります。

少なくとも一見すると、私が見ることができる解決策です。

于 2012-09-18T11:07:49.493 に答える