2013-12-23 32 views
0

我已經完成了我所問的問題,感謝所有回答的人。動態創建文本框名稱和位置問題

目前在我的應用程序中,我有兩個按鈕可以創建我的文本框並將它們放到我希望它們去的位置。

C#代碼:

private void btnAddTitle_Click(object sender, RoutedEventArgs e) 
{ 
     TextBox x = new TextBox(); 
     x.Name = "new_textbox"; 
     x.TextWrapping = TextWrapping.Wrap; 
     x.Height = 25; 
     x.Width = 200; 
     x.AcceptsReturn = true; 
     x.Margin = new Thickness(10, 15, 950, 0); 
     spStandard.Children.Add(x); 
} 

private void btnQuestion_Click(object sender, RoutedEventArgs e) 
{ 
     TextBox x = new TextBox(); 
     x.Name = "new_textbox"; 
     x.TextWrapping = TextWrapping.Wrap; 
     x.Height = 25; 
     x.Width = 200; 
     x.AcceptsReturn = true; 
     x.Margin = new Thickness(10, 15, 850, 0); 
     spStandard.Children.Add(x); 
} 

XAML代碼:行動

<Button x:Name="btnAddTitle" Content="Add Title" HorizontalAlignment="Left" Margin="919,30,0,0" VerticalAlignment="Top" Width="121" Height="24" Background="{x:Null}" Click="btnAddTitle_Click"/> 
<Button x:Name="btnQuestion" Content="Add Question" HorizontalAlignment="Left" Margin="1080,30,0,0" VerticalAlignment="Top" Width="121" Height="24" Click="btnQuestion_Click"/> 

<Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="1" Margin="22,82,0,0" Stroke="Black" VerticalAlignment="Top" Width="1200"/> 
<Border CornerRadius="6" BorderBrush="Black" BorderThickness="2" Margin="34,132,33,72"> 
     <StackPanel x:Name="spStandard" HorizontalAlignment="Left" Margin="0,-2,-2,-2" Width="1181"/> 
</Border> 

圖片代碼:

http://i.stack.imgur.com/REWTe.png

(標題TextBoxs更接近邊界,問題TextBoxs有一個缺口)

回答我的第一個問題是:當我點擊按鈕時,它動態創建不同的文本框。我怎樣才能給他們不同的名稱/ ID,以便我可以在需要時從TextBox中獲取信息?

我的最後一個問題是:當我編輯文本框(x.Width = 200;)的寬度,使用戶可以添加一個更大的問題,文本框損失位置,也是緣。

圖片:

http://i.stack.imgur.com/JKhUH.png

(它似乎失去了保證金,還可以縮短文本框的邊緣時,我做大做)

回答

1

對於您可以生成文本框名稱的第一個問題動態。

int y = 0; 

     private void btnAddTitle_Click(object sender, RoutedEventArgs e) 
     { 
      TextBox x = new TextBox(); 
      x.Name = "new_textbox" + y; 
      x.TextWrapping = TextWrapping.Wrap; 
      x.Height = 25; 
      x.Width = 200; 
      x.AcceptsReturn = true; 
      x.Margin = new Thickness(10, 15, 950, 0); 
      spStandard.Children.Add(x); 
      y++; 
     } 
+0

這工作得很好,謝謝你的幫助。 –