[英]C# WINFORMS Declare instances of user control
首先,我將展示我的代碼,它非常簡單。
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,這意味着我有一個產品,我會像這樣顯示
產品名稱 產品價格 產品數量 圖片
這就是用戶控件所擁有的,只有 3 個標簽和一個圖片框,然后我想調用它並填充它直到我的文件結束。 該代碼僅適用於主要問題,因為我正在像這樣聲明實例
ListagemProdutos myPanel = new ListagemProdutos();
我認為他正在覆蓋,而不是讓我們說我有 5 個產品得到 5 行(用戶控制的 5 倍)我只得到最后一行..我想我應該做這樣的事情 mypanel+[i] ,所以它會是 mypanel1,mypanel2 但我沒有辦法做到這一點,因為我們不能只做
ListagemProdutos myPanel+[i] = new ListagemProdutos();
感謝大家閱讀本文,如有任何語法錯誤,希望您能理解!
編輯:這是一張以更簡單的方式顯示我的問題的印刷品。 為什么我的用戶控件不能有 2 個或更多實例? 為什么總是只顯示 1?
Romero,而不是在 foreach 循環結束時增加 x 和 y 軸,只增加 y 軸。 可能是您的控件超出了窗口區域。
只是一個建議,以您嘗試的方式添加控件可能會很麻煩,請嘗試使用網格控件並向其添加具有所需值的新行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.