【问题标题】:How to assign existing textboxes to textbox array in c#?如何将现有文本框分配给 C# 中的文本框数组?
【发布时间】:2014-05-12 23:48:35
【问题描述】:

我在一个 c# web 应用程序(不是 winform)中有 30 个现有文本框(TextBox...TextBox30),我想创建一个数组。

TextBox[] tb = new TextBox[30];

然后将所有 30 个现有按钮分配给该数组。

有没有比逐个添加更快的方法?

tb[0]=TextBox1;

【问题讨论】:

  • 好吧,你可以动态创建它们而不是手动

标签: c# arrays textbox assign


【解决方案1】:
TextBox[] tb = { TextBox1, TextBox2, ... };

【讨论】:

  • 感谢回复,我尽量不要偷懒,只是想知道有没有办法在for循环中添加它?谢谢。
  • 是的,如果您知道有多少个文本框,您就可以。如果你不这样做,那么你不能。数组必须具有固定长度。不过,您可以使用列表。
  • 是的,我知道,有30个testbox,我试过用Controls.Add,但是没用,请指教。
  • 如果它们是连续的并且都具有相同的父控件或页面,您可以执行类似var tb = Enumerable.Range(1, 30).Select(i => Page.FindControl("TextBox" + i) as TextBox).ToArray(); 的操作
【解决方案2】:

或许能帮上忙:

var txtBox = Form1.Controls.OfType<TextBox>().ToArray();

for(i = 0; i < txtBox.Count; i++)
{
    // do stuff...
}

我的语法可能有点不对...

【讨论】:

  • 我使用这种方法来模拟一个SelectedIndex() 用于单选按钮的组框。
【解决方案3】:

我个人更喜欢使用list 而不是array,因为我比较懒。

        List<TextBox> txtBoxs = new List<TextBox>();

        foreach (Control ctl in splitContainer1.Panel2.Controls){

            TextBox txtBox = ctl as TextBox;

            if (txtBox != null)
            {
                txtBoxs.Add(txtBox);
            }

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    相关资源
    最近更新 更多