如何动态地使用for循环在网格内逐个创建文本框?

时间:2012-08-15 11:40:44

标签: windows-phone-7

我是新的Windows手机,我想在网格内逐个动态创建一个文本框。我想使用他们的名字访问文本框来执行一些计算。我的代码如下所示:

 public MainPage()
    {
        InitializeComponent();
        string[] str = new string[2];
        str[0] = "force";
        str[1] = "force components";
        TextBox[] textbox = new TextBox[2];

       for (int i =0; i <2; i++)
       {
           textbox[i].Text = str[i]; 

            ContentPanel.Children.Add(textbox[i]);
        }
    }

上面的代码在“textbox [i] .Text = str [i]”行中显示空引用异常。 请告诉我清除此问题的代码。帮我。谢谢..

2 个答案:

答案 0 :(得分:1)

我并不完全相信你这样做是正确的*,但是如果没有任何更好的信息,我会直接回答你的问题......
您没有为循环的每次迭代声明一个新的TextBox。试试这个......

for (int i =0; i <2; i++)
{
    textbox[i]= new TextBox { Text = str[i] } ; 
    ContentPanel.Children.Add(textbox[i]);
}

*绑定到某种ItemsControl可能更可取......

答案 1 :(得分:0)

添加到zombiesheep所说的内容。您还需要定义它们的绘制位置。如果不这样做,它们将显示在彼此之上(如果使用网格布局)。 所以你需要指定边距,高度和宽度等。 我曾经像这样添加按钮到网格控件,我做的是:

button[i].Margin.X= 24+button[i-1].Margin.X;

这将在x轴上以24像素为单位绘制下一个按钮,前一个按钮。