用c#为网格添加文本框
本文关键字:文本 添加 网格 | 更新日期: 2023-09-27 18:16:16
我对c#相当陌生。我试图通过单击按钮添加一个文本框到网格。当我点击这个按钮时,网格上的所有东西都消失了:
private void addLine_Click(object sender, System.EventArgs e)
{
System.Windows.Controls.TextBox txt = new System.Windows.Controls.TextBox();
txt.Name = "textBox8";
dxfLines.Children.Add(txt);
}
这里也是xaml:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DXFGenerator" Height="350" Width="525" Loaded="Window_Loaded">
<Grid Name="dxfLines">
<TextBox Height="23" HorizontalAlignment="Left" Margin="271,94,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
<Button Content="Generate DXF" Height="23" HorizontalAlignment="Left" Margin="286,194,0,0" Name="button1" VerticalAlignment="Top" Width="84" Click="button1_Click" />
<Button Content="Add Line" Height="23" HorizontalAlignment="Left" Margin="391,196,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="addLine_Click" />
</Grid>
</Window>
如果使用的是网格,则需要定义行和列。您的xaml应该看起来像这样:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DXFGenerator" Height="350" Width="525" Loaded="Window_Loaded">
<Grid Name="dxfLines" x:FieldModifier="private" >
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBox Height="23" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" Grid.Column="2" Grid.Row="4" />
<Button Content="Generate DXF" Height="23" HorizontalAlignment="Left" Grid.Column="1" Grid.Row="6" VerticalAlignment="Top" Width="84" Click="button1_Click" />
<Button Content="Add Line" Height="23" HorizontalAlignment="Left" Grid.Column="2" Grid.Row="6" VerticalAlignment="Top" Width="75" Click="addLine_Click" />
</Grid>
</Window>
您还需要为要添加的文本框指定行和列,以便网格知道将文本框放置在何处。你的addLine点击的内容应该看起来像:
System.Windows.Controls.TextBox txt = new System.Windows.Controls.TextBox();
txt.Name = "textBox8";
Grid.SetColumn(txt,1);
Grid.SetRow(txt, 1);
dxfLines.Children.Add(txt);
此外,请记住,为了添加新的子项,您选择Grid窗体而不是Window窗体。Window窗体没有Children属性,但是在这个例子中,Grid窗体有属性。