【问题标题】:Can i use text box names as values in a list?我可以使用文本框名称作为列表中的值吗?
【发布时间】:2009-09-25 13:30:59
【问题描述】:

我正在创建一个列表来更新带有值表单文本框的 MySql 数据库,我怎样才能使这样的事情起作用?

如果我使用

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

【问题讨论】:

  • 对不起伙计,我不太明白你在问什么,你能澄清一下吗?
  • 您没有将 TextBoxes 的内容分配给 Form1_Load 上的 boxList[]。您正在分配“box1.Text”字符串。

标签: c# list textbox


【解决方案1】:

你应该改变你的 boxList 数组来保存对文本框的引用而不是字符串:

TextBox[] boxList = new TextBox[8];

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

然后就可以了。

【讨论】:

  • 愚蠢的我,我以为他想写更少的代码...顺便说一句,他需要重写 sumX() 方法,因为它需要带有文本框内容的字符串...
【解决方案2】:

或者,来点 Linq 的好处:

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

【讨论】:

  • 只要您没有任何其他名称以“box”开头的 TexBox 就可以使用
【解决方案3】:

试试:

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

【讨论】:

  • 啊更好,会试试这个。
  • 当前上下文中不存在名称“FindControl”。我缺少什么系统命名空间?
  • @Darkmage:对不起,我以为你在做 ASP ;-) 其实很相似(除了名字 Form1),你没说。
【解决方案4】:

如果您不使用 WPF,则可以访问“me.controls”,它是表单中所有可用控件的数组。但请注意,如果您的文本框位于面板或其他容器上,则使用 object.controls 获取文本框。

希望有效。

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 1970-01-01
    • 2020-07-18
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多