2009-09-25 49 views
0

即時通訊創建一個列表來更新一個MySql數據庫與值形式的文本框,我怎麼能做這樣的工作嗎?我可以使用文本框名稱作爲列表中的值嗎?

如果我使用

verdierX[0] = (int)decimal.Parse(box1.Text); 

它工作得很好 但是當我嘗試在這樣的循環使用它是blowes起來。任何人都有關於如何解決這個問題的建議?

int[] dbNavnX = new int[8]; 
    int[] verdierX = new int[8]; 
    string[] boxList = new string[8]; 

    private void Form1_Load(object sender, EventArgs e) 
    { 

     boxList[0] = "box1.Text"; 
     boxList[1] = "box2.Text"; 
     boxList[2] = "box3.Text"; 
     boxList[3] = "box4.Text"; 
     boxList[4] = "box5.Text"; 
     boxList[5] = "box6.Text"; 
     boxList[6] = "box7.Text"; 
     boxList[7] = "box8.Text"; 
    } 

    private void sumX() 
    { 
     for (int sum = 0; sum < 8; sum++) 
     { 
      verdierX[sum] = (int)decimal.Parse(boxList[sum]); 
     } 
    } 
+0

對不起隊友,我不太明白你的要求,你能澄清? – 2009-09-25 13:33:51

+0

您並未將TextBoxes的內容分配給Form1_Load上的boxList []。您正在分配「box1.Text」字符串。 – erelender 2009-09-25 13:35:17

回答

1

或者說,如何對一些LINQ的善良:

var sumX = from Control control in Controls 
      where 
       control.GetType() == typeof (TextBox) 
       && control.Name.StartsWith("box") 
      select Convert.ToInt32(((TextBox)control).Text); 
+0

非常好,只要我需要 – Darkmage 2009-09-28 12:53:35

+0

工作,只要你沒有任何其他TexBoxes的名字以「box」開頭 – M4N 2009-09-29 20:13:32

2

你應該改變你的boxList數組來保存引用到文本框,而不是字符串:

TextBox[] boxList = new TextBox[8]; 

boxList[0] = box1; 
boxList[1] = box2; 
... 

然後它會奏效。

+0

thx mate只是我後來:) – Darkmage 2009-09-25 13:37:34

+0

愚蠢的我,我想他想寫更少的代碼......順便說一句,他需要重寫sumX()方法,因爲那個人期望字符串與文本框的內容。 .. – 2009-09-25 13:44:31

0

如果您未使用WPF,則可以訪問「me.controls」,它是表單中所有可用控件的數組。但請注意,如果您的文本框位於面板或其他容器上,則可以使用object.controls來獲取文本框。

希望工程。

1

嘗試:

int[] verdierX = new int[8]; 

private void Form1_Load(object sender, EventArgs e) 
{ 
    for (var i = 0; i < 8; i++) 
    { 
     TextBox tb = (TextBox)FindControl("box" + i.ToString()); 
     verdierX[i] = (int)decimal.Parse(tb.Text); 
    } 
} 
+0

啊甚至更好,會試試這個。 – Darkmage 2009-09-25 13:51:20

+0

名稱'FindControl'在當前上下文中不存在。 我缺少什麼系統命名空間? – Darkmage 2009-09-25 14:04:21

+0

@Darkmage:對不起,我以爲你在做ASP ;-)其實非常相似(除了名稱Form1),你沒有說。 – 2009-09-26 03:13:44

相關問題