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()是正确的,甚至循环也在正常工作。但问题是即使数据库有多行,面板中也只添加了一个控件。请告诉我代码有什么问题?

4

2 回答 2

4

@ChrisSinclair 可能是对的:尝试设置mr[i].Dock = DockStyle.Top;填充控件属性的位置。

于 2012-09-18T11:12:07.337 回答
1

也许这段代码正在工作,但似乎不起作用,因为您在同一位置创建它们,并且您必须更改要添加的控件的Location属性。

至少乍一看是我能看到的解决方案。

于 2012-09-18T11:07:49.493 回答