1

私は新しいWindows Phoneです。forループを動的に使用して、グリッド内にテキストボックスを1つずつ作成したいと考えています。名前を使用してテキストボックスにアクセスし、計算を実行したいと考えています。私のコードを以下に示します:

 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]」の行で null 参照例外を示しています。この問題を解決するためのコードを教えてください。助けて。ありがとうございました..

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

ゾンビシープが言ったことに追加します。描画する場所も定義する必要があります。そうしないと、それらが互いの上に表示されます (グリッド レイアウトを使用している場合)。したがって、マージン、高さ、幅などを指定する必要があります。私はかつて、このようにグリッド コントロールにボタンを追加しました。

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

これにより、前に描画されたボタンよりも x 軸上で 24 ピクセル多く次のボタンが描画されます。

于 2012-08-15T16:42:06.183 に答える