作者dreamday1023 (也許我就是我,好好愛自己)
看板C_Sharp
標題Re: [問題] 如何執行大筆資料呢
時間Sun Jun 27 02:30:27 2010
首先 先感謝大大們的意見 小弟獲益良多
目前我的檔案跑大量應該是沒啥太大的問題
只是當我產生大量資料時
比如說我要動態產生5000個textbox 跟 label時
好像每次都在 建立第3317資料時就發生了錯誤
以下是我的程式碼
private int b;
private int a;
private void button1_Click(object sender ,EventArgs e)
{
for(int i=0;i<5000;i++)
{
this.SuspendLayout();
Textbox tb=new Textbox();
Label L=new Label();
tb.Name="textbox"+b.ToString();
L.Name="Label"+a.ToString();
tb.Location=new System.Drawing.Point(i,i);
L.Location=new System.Drawing.Point(i,i);
tb.Size=new System.Drawing.Size(30,30);
L.Size=new System.Drawing.Size(30,30);
this.Controls.Add(tb);
this.Controls.Add(L);
this.ResumeLayout(false);
}
}
想請問大大 我是哪做錯了呢
感謝大大的收看
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.103.120
1F:→ u9211138:錯誤訊息...? 06/27 02:53
2F:推 liaommx:為什麼會需要動態產生5000個textbox呢?XD 06/27 10:14
3F:→ liaommx:我的想法是,產生一個textbox,利用變數方式填入textbox 06/27 10:14
4F:→ liaommx:再去呼叫執行副程式抓取此textbox職執行 06/27 10:15
5F:→ liaommx:這樣就可以避免大量動態產生的問題. 06/27 10:15
6F:→ proach:一些小事:suspend與resume可以拿到迴圈外 06/27 10:52
7F:→ proach:全部產生完畢後,使用Controls.AddRange一次加入 06/27 10:52
8F:→ proach:這樣效率高一些 06/27 10:53
9F:→ proach:however, 5000個textbox...我猜螢幕更新效率不高吧 :P 06/27 10:53
10F:→ dreamday1023:5000筆textbox是因為我相希望可以在介面上呈現我輸入 06/27 11:29
11F:→ dreamday1023:的資料 之後也許會再跑1萬筆吧 06/27 11:31
12F:→ proach:如果資料不多樣化,也許用bmp自己繪字上去速度更快? 06/27 11:42
13F:→ dreamday1023:這是我發生的錯誤 在 this.Controls.Add(tb)這行 06/27 11:43
14F:→ dreamday1023:產生了"建立視窗控制代碼時發生錯誤" 請問大大這是 06/27 11:45
15F:→ dreamday1023:啥意思 06/27 11:45
17F:→ andymai:沒有辦法讓人這樣無限制的取用~另外就設計面來看~弄了一堆 06/27 12:10
18F:→ andymai:textbox在上面~真的有意義?如果是要繪圖就直接用繪圖元件~ 06/27 12:11
19F:→ andymai:應該不至於真的要人在5000個控制項裡找東西填吧... 06/27 12:11
20F:→ dreamday1023:其實我只是建立textbox然後再利用檔案輸入的方式 06/27 12:28
21F:→ dreamday1023:讓每個點知道textbox內資料是多少 06/27 12:30
22F:推 horngsh:用5000個變數或物件存不是更好? 06/27 12:42
23F:→ makiyolove:textbox多行顯示 就好 不用產生這麼多吧 06/28 11:58
24F:→ ssccg:如果要呈現非常多的資料,用DataGridView比較好 06/28 20:28
25F:→ ssccg:TextBox主要是用來「填」「一項」資料用的吧 06/28 20:34
26F:推 horngsh:的確是填"一項"資料用的..原POST基楚要打穩些..加油. 06/29 07:13