簡體   English   中英

C# WINFORMS 聲明用戶控件的實例

[英]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?

http://epvpimg.com/Be8tc

Romero,而不是在 foreach 循環結束時增加 x 和 y 軸,只增加 y 軸。 可能是您的控件超出了窗口區域。

只是一個建議,以您嘗試的方式添加控件可能會很麻煩,請嘗試使用網格控件並向其添加具有所需值的新行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM