2016-09-06 163 views
0

WPFで新しくなっています。実行時に各行に3つのテキストボックスを作成したい場合は、生成ボタンをクリックしてください。私を助けてください。WPFで実行時にテキストボックスコントロールを動的に追加する方法#

Automatically created textbox

**Code behind** 
    private List<TextBox> inputTextBoxes; 
    private void btnGenerate_Click(object sender, RoutedEventArgs e) 
    { 
     //Get the number of input text boxes to generate 
     int inputNumber = Int32.Parse(textBoxInput.Text); 

     //Initialize list of input text boxes 
     inputTextBoxes = new List<TextBox>(); 

     //Generate labels and text boxes 
     for (int i = 1; i <= inputNumber; i++) 
     { 
      //Create a new label and text box 
      Label labelInput = new Label(); 
      TextBox textBoxNewInput = new TextBox(); 
     } 
    } 

答えて

0

に他のテキストボックスのプロパティを見つけることができますあなたのグリッドはxamの名前L:背後

<Grid x:Name="Grid1"> 
    <Button Grid.Column="0" 
      Margin="10" 
      Click="btnGenerate_Click"> 
     Button Content 
    </Button> 
</Grid> 

とコードで:

private void btnGenerate_Click(object sender, RoutedEventArgs e) 
{ 
    //Get the number of input text boxes to generate 
    int inputNumber = Int32.Parse(textBoxInput.Text); 

    //Initialize list of input text boxes 
    inputTextBoxes = new List<TextBox>(); 

    //Generate labels and text boxes 
    for (int i = 1; i <= inputNumber; i++) 
    { 
     //Create a new label and text box 
     Label labelInput = new Label(); 
     Grid1.Children.Add(labelInput); 
     TextBox textBoxNewInput = new TextBox(); 
     Grid1.Children.Add(textBoxNewInput); 
    } 
} 

したい場合は、新しく作成された要素が重ならないように、あなたはまた、位置を設定することができます。

EDIT:

あなたが必要な行と列のグリッドを作成し、必要な行と列の組み合わせ内の各テキストボックスやラベルを配置する必要があります。 6行3列を含んでいます。以下の例を参照してください:

<Grid Name="Grid1"> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 
</Grid> 

private void btnGenerate_Click(object sender, RoutedEventArgs e) 
{ 
    //Get the number of input text boxes to generate 
    int inputNumber = Int32.Parse(textBoxInput.Text); 

    //Initialize list of input text boxes 
    inputTextBoxes = new List<TextBox>(); 

    //Generate labels and text boxes 
    for (int i = 1; i <= inputNumber; i++) 
    { 
     //Create a new label and text box 
     Label labelInput = new Label(); 

     Grid.SetColumn(labelInput, i); 
     Grid.SetRow(labelInput, i); 
     Grid1.Children.Add(labelInput); 

     TextBox textBoxNewInput = new TextBox(); 
     Grid.SetColumn(labelInput, i+1); 
     Grid.SetRow(labelInput, i); 
     Grid1.Children.Add(textBoxNewInput); 
    } 
} 
+0

しかし、どのように私は各テキストボックスとラベルの場所と他のプロパティを設定します。 –

+0

ラベルやテキストボックスにmarginプロパティを設定します。 'Margin =" 20,10,0,10 "' – ViVi

+0

これらのテキストボックスのデータをデータベースに送りたいと思います。 –

0

私はあなたのページのコンテンツはCanvas制御であると仮定します。後ろの

コード:

protected void ButtonGenerate_Click(object sender, RoutedEventArgs e) 
{ 
    TextBox tb = new TextBox(); 
    (this.Content as Canvas).Children.Add(tb); 
} 

あなただけ与えるhttps://msdn.microsoft.com/en-us/library/system.windows.controls.textbox(v=vs.110).aspx

+0

いいえページのコンテンツはGrid.Plzグリッドのコードを教えてください。 –

+0

グーグル上のグリッドと同様のコードをチェックしたい場合があります。 –

関連する問題