2009-09-25 37 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

相关问题