在WPF中单击按钮时创建文本框
本文关键字:创建 文本 按钮 WPF 单击 | 更新日期: 2023-09-27 18:12:47
我已经搜索了一些与此相关的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
事件,您将动态文本框添加到MainGrid
,该代码看起来很好。但问题是,this.MainGrid
不是在当前的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