[問題] 儲存多個textbox數值

看板C_Sharp作者 (弗卡夏)時間12年前 (2012/03/13 22:39), 編輯推噓2(2014)
留言16則, 3人參與, 最新討論串1/1
大家好,小弟我想寫一個陣列來儲存form上的多個text.box 以下是我寫的方式: Int64[,] Rdata = new Int64[3, 5]; for (int T = 0; T < Rdata.GetUpperBound(1); T++) { for (int t = 0; t < Rdata.GetUpperBound(0); t++) { //設定一個n的變數讀取全部的textbox int n = 0; n++; Rdata[t, T] = Convert.ToInt64(textBox1.Lines[n].Split(' ')); } } 問題: Rdata[t, T] = Convert.ToInt64(textBox1.Lines[n].Split(' ')); 這一段我是看板上的文章後所寫的,目的是要讀取form上共15個textbox 並將數值放入陣列.但執行時會出現 "引索在陣列的界限以外". 但我不知道要如何修改!! 請大家指教一下,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.245.147 ※ 編輯: kidnaper 來自: 114.47.245.147 (03/13 22:39)

03/14 01:16, , 1F
你的n值會超過 因為你先 ++ 在去抓值 會有lines[16]
03/14 01:16, 1F

03/14 01:16, , 2F
把n++移到Rdata那行的後面就好了^^
03/14 01:16, 2F

03/14 01:17, , 3F
陣列起始是從0開始哦ㄎㄎ
03/14 01:17, 3F

03/14 09:41, , 4F
textBox1.Lines[n] 看起來是讀取 textBox1裡面的各行
03/14 09:41, 4F

03/14 09:41, , 5F
並不是你要的讀取各個textBox吧?
03/14 09:41, 5F

03/14 09:54, , 6F
假設你的textBox是叫textBox1、textBox2、textBox3 ...的話
03/14 09:54, 6F

03/14 09:55, , 7F
form.Controls.Find("textBox" + n, true) 才是各textBox
03/14 09:55, 7F

03/14 11:11, , 8F
謝謝q大!!N++已經移置後方了!!
03/14 11:11, 8F

03/14 11:12, , 9F
改成Rdata[t, T] = Form.Contorls.find("textbox" + n,
03/14 11:12, 9F

03/14 11:13, , 10F
true); 後他說不包含Controls的定義,我是否還要命名空間?
03/14 11:13, 10F

03/14 22:48, , 11F
記得要轉型 所以會變成
03/14 22:48, 11F

03/14 22:50, , 12F
因為你現在find之後,程式不知道你找到的是哪一種
03/14 22:50, 12F

03/14 22:51, , 13F
Textbox txt = (TextBox)Form.Controls.find("textbox"
03/14 22:51, 13F

03/14 22:52, , 14F
+n, true);
03/14 22:52, 14F

03/14 22:52, , 15F
Rdata[t,T]=txt.Text <Text這屬性才是抓值哦>
03/14 22:52, 15F

03/14 22:53, , 16F
記得每段後面要加分號ㄎ
03/14 22:53, 16F
文章代碼(AID): #1FNrmFyA (C_Sharp)