首先,我将展示我的代码,非常简单。
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个?
答案 0 :(得分:0)
罗梅罗,而不是增加x&在foreach循环末端的y轴,仅增加y轴。可能是你的控制是走出窗外区域。
只是一个建议,添加控制你尝试的方式可能很麻烦,而是尝试使用网格控件并使用所需的值添加新行。