Как вставить TextBox в Grid при загрузке Window в приложении C # WPF - PullRequest
1 голос
/ 02 марта 2012
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, поэтому я попытался создать массив во время работы приложения.Извините за плохой английский.

1 Ответ

0 голосов
/ 02 марта 2012

Там, где вы закомментировали SetColumn, вам нужны следующие три строки:

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

Итак, вы оказались на правильном пути, просто не добавили текстовые поля в дизайн - все, что вам нужноготово было создать их и попытаться установить свойство столбца.

Также обратите внимание, что лучше избегать однобуквенных переменных - например, строки и столбцы облегчат чтение.

Может быть другой способ решения проблемы в целом, но это заставит ваш код работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...