Элемент управления Textbox в DataGridView - PullRequest
0 голосов
/ 16 мая 2009

Я работаю над представлением данных в C # в приложении Windows. Я хочу добавить текстовые элементы управления в DataGridView. Таким образом, когда мы запускаем его, тогда текстовое поле должно отображаться в виде сетки, и мы можем поместить значение в него, и Моя сетка имеет 3 столбца, и я хочу добавить новую строку в сетку, когда я нажимаю вкладку в 3-м столбце таблицы.

Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 16 мая 2009

Трудно дать точный ответ, так как ваш вопрос отсутствует в деталях и довольно общий, но чтобы получить текстовые поля в вашем DataGridView, вам нужно добавить несколько экземпляров DataGridViewTextBoxColumn в коллекцию DataGridView Columns. Это приведет к тому, что они будут заполнены текстовыми полями в каждой строке.

Чтобы определить, когда пользователь нажимает на вкладку в 3-м столбце, вы можете добавить четвертый столбец шириной 1-2 пикселя и определить, что он получил фокус (почти наверняка от нажатия клавиши табуляции), используя событие OnCellEnter. *

Удачи!

0 голосов
/ 11 июня 2009

Итак, для "отображения текстовых полей по умолчанию часть вашего вопроса, вот тощий:

В GridView-> Редактировать столбцы добавьте столбцы, которые вы хотите использовать явно. Затем нажмите на ссылку «Преобразовать это поле в поле шаблона». Это позволит вам настроить сгенерированный HTML для этих ячеек. Скажи "ОК. Затем перейдите в GridView-> Редактировать шаблоны. Для вашего любимого столбца скопируйте ItemEditTemplate в ItemTemplate. (ItemTemplate используется по умолчанию. ItemEditTemplate содержит правильно связанный элемент управления для редактирования.) Теперь все ваши поля данных по умолчанию будут иметь значение «редактируемый».

Полагаю, у вас есть кнопка отправки. Вам нужно указать GridView обновить строки при отправке, например:

    For Each r As GridViewRow In GridView1.Rows
        Dim mon = System.Int32.Parse(CType(r.FindControl("TextBox1"), TextBox).Text)
        If mon <> 0 Then GridView1.UpdateRow(r.RowIndex, False)
    Next

Очевидно, вам понадобится другая логика, но должна применяться базовая логика цикла / findControl / updateRow.

У Microsoft есть пошаговое руководство по этому вопросу: Выполнение массовых обновлений строк, привязанных к GridView

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