我已经搜索了一些与此相关的stackoverflow线程,但是我在代码plz中遇到了问题,请查看我的代码,并告诉我哪里是我被卡住的问题,而不是哪里是我是新来的问题,请帮帮我
public partial class MainWindow : Window
{
Grid MainGrid = new Grid();
public MainWindow()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
TextBox dynamicTextBox = new TextBox();
dynamicTextBox.Text = "Type Partnumber";
Grid.SetRow(dynamicTextBox, 1);
Grid.SetColumn(dynamicTextBox, 0);
this.MainGrid.Children.Add(dynamicTextBox);
}
}
最佳答案
通过使用button_Click
事件,您可以将动态TextBox添加到MainGrid
,并且该代码看起来不错。但是问题在于this.MainGrid
不在Present UI中,它与动态创建的TextBox相似,因为您已经在后台代码中定义了它(请参见构造函数Grid MainGrid = new Grid();
上方的定义)。
考虑canContainer
是在xaml中定义的画布,如下所示,
<Canvas Height="319" Margin="0"
Width="517"
Name="canContainer"/>
为了克服这个问题,您可以选择以下任何一种方法。
1.将
MainGrid
添加到UI。它将网格添加到画布,请记住已经添加到网格的动态文本框。这意味着代码应该像这样->
this.canContainer.Children.Add(MainGrid);
2.将
dynamicTextBox
添加到UI中存在的任何其他父项。this.canContainer.Children.Add(dynamicTextBox);
您正在使用此方法,则无需定义和添加
MainGrid
关于c# - WPF中单击按钮时创建文本框?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40012337/