簡體   English   中英

我可以使用文本框名稱作為列表中的值嗎?

[英]Can i use text box names as values in a list?

即時通訊創建一個列表來更新帶有值形式文本框的MySql db,我如何使像這樣的東西?

如果我使用

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

它工作得很好,但是當我嘗試在循環中使用它時,它像被炸了一樣。 有人對如何解決這個問題有建議嗎?

    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]);
        }
    }

您應該更改boxList數組以保存對TextBoxes的引用,而不是字符串:

TextBox[] boxList = new TextBox[8];

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

然后它將起作用。

嘗試:

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);
    }
}

或者,Linq的優點如何:

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

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

希望能奏效。

暫無
暫無

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

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