2009-05-16 3 views
0

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

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

+0

Название этого вопроса может быть улучшено. Подумайте, назовите его что-то вроде: «Пользовательские элементы управления в DataGridView» вместо «Программирование Windows на C# .NET». – rein

+0

Это должно быть два вопроса: «Как вставить элемент управления в gridview?» и «Как добавить строку в виде сетки, когда пользователь вставляет третий столбец?». – jfar

+1

Если вы немного поработали над тем, что ваше исследование появилось до сих пор, людям здесь было бы лучше помочь. Но я совершенно уверен, что вы не можете это понять, потому что вы не потрудились исследовать это. – Cerebrus

ответ

2

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

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

Удачи вам!

+0

Скрытая четвертая колонка - довольно хитрый трюк. –

0

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

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

У меня есть кнопка отправки. е ряды по представить, например, так:.

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 имеет пошаговое руководство по этому вопросу здесь: Performing Bulk Updates to Rows Bound to a GridView

Смежные вопросы