如何在 C# WPF 应用程序中加载窗口时将文本框插入网格

本文关键字:文本 网格 插入 窗口 加载 WPF 应用程序 | 更新日期: 2023-09-27 18:26:32

private void Window_Loaded(object sender, RoutedEventArgs e)
{  
    for (int i = 0; i <= 7; i++)
    {
        ColumnDefinition clDef = new ColumnDefinition();
        RowDefinition rwDef = new RowDefinition();
        clDef.MinWidth = 40;
        clDef.MaxWidth = 40;
        rwDef.MinHeight = 32;
        rwDef.MaxHeight = 32;
        grdAdtn.ColumnDefinitions.Add(clDef);
        grdAdtn.RowDefinitions.Add(rwDef);
    };
    TextBox[,] fields=new TextBox[8,8];
    for(int i=0;i<=7;i++){
        for(int j=0;j<=7;j++){
            fields[i,j]=new TextBox();
            fields[i, j].Text = "test";
            fields[i, j].Width = 40;
            fields[i, j].Height = 32;
            fields[i, j].Visibility = Visibility.Visible;
            //Grid.SetColumn(fields[i, j], i);
        }
    }
}

有了这个,我设法将行和列添加到网格,但我在网格字段中看不到文本框。我需要制作一个文本框数组,以便以后可以访问它们,我不知道如何在 Visual Studio 编辑器中制作控件数组,所以我尝试在应用程序运行时制作数组。对不起,英语不好。

如何在 C# WPF 应用程序中加载窗口时将文本框插入网格

在注释

掉 SetColumn 的地方,您需要以下三行:

grdAdtn.Children.Add(fields[i,j]);  
Grid.SetColumn(fields[i,j], i);  
Grid.SetRow(fields[i,j], j);  

所以你走在正确的轨道上,你只是没有将文本框添加到设计中 - 你所做的只是创建它们并尝试设置列属性。

另请注意,最好避免使用单个字母变量 - 例如,row 和 col 会使其更易于阅读。

可能还有另一种方法可以整体解决问题,但这会使您的代码正常工作