C#WINFORMS声明用户控件的实例

时间:2015-06-15 11:36:30

标签: c# winforms user-controls

首先,我将展示我的代码,非常简单。

FileStream fs = new FileStream("Stock.txt", FileMode.Open);
                StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);

                string line = "";
                string[] Produtos = new string[] { };
                int count = 1;
                int i = 0;
                int x = 25;
                int y = 25;

                while ((line = sr.ReadLine()) != null)
                {

                    if (!string.IsNullOrEmpty(line))
                    {


                        ListagemProdutos myPanel = new ListagemProdutos();
                        myPanel.Location = new Point(x, y);
                        this.Controls.Add(myPanel);

                        y = y + 25;
                        x = x + 25;
                        i++;

                    }

                }

现在的问题是,每当我得到一条线!= null,这意味着我有一个产品,我会像这样显示

  

ProductName ProductPrice ProductQuantity Picture

这就是用户控件所拥有的,只有3个标签和一个图片框,然后我想调用它并填充它直到我的文件结束。代码完美地只有一个MAIN问题,因为我声明像这样的实例

  

ListagemProdutos myPanel = new ListagemProdutos();

我认为他正在覆盖,而是让我说我​​有5个产品获得5行(用户控制的5倍)我只得到最后一行..我想我应该做这样的事情mypanel + [i],所以这将是mypanel1,mypanel2,但我没有办法做到这一点,因为我们不能这样做

  

ListagemProdutos myPanel + [i] = new ListagemProdutos();

感谢所有人阅读本文,并抱歉任何语法错误,希望你能理解!

编辑:这是一个以简化方式显示我的问题的图片。为什么我不能拥有2个或更多我的用户控件实例?为什么只显示1个?

http://epvpimg.com/Be8tc

1 个答案:

答案 0 :(得分:0)

罗梅罗,而不是增加x&在foreach循环末端的y轴,仅增加y轴。可能是你的控制是走出窗外区域。

只是一个建议,添加控制你尝试的方式可能很麻烦,而是尝试使用网格控件并使用所需的值添加新行。