1

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

 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]”行中显示了空引用异常。请告诉我清除此问题的代码。帮我。谢谢你..

4

2 回答 2

1

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

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

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

于 2012-08-15T11:57:28.220 回答
0

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

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

这会将下一个按钮在 x 轴上比之前绘制的按钮多 24 像素。

于 2012-08-15T16:42:06.183 回答