2012-03-25 5 views
0

Используя форму Windows (Vb.net & DataGridView)Копирование одной строки на другое значение строки

Флажок использует в DataGridView строки. Я хочу скопировать выбранную строку в новую строку.

Для примера

ID Value Checkbox 

001 100 Checked 
002 200 Checked 
003 250 Unchecked 

Тогда я пытаюсь скопировать, то он должен показать, как

ID Value Checkbox 

001 100 Checked 
002 200 Checked 
003 250 Unchecked 
001 100 Checked 
002 200 Checked 

Попробовал код.

For i As Integer = grvList.RowCount - 1 To 0 Step -1 
      If grvList.Rows(i).Cells(0).Value = True Then 
       For j As Integer = 0 To grvList.Rows(i).Cells.Count - 1 
        MsgBox(grvList.Rows(i).Cells(j).Value) 
       Next 
      End If 
Next 

'

grvlist - Datagridview 
cells(0) - checkbox used 

Приведенный выше код работает для, если флажок установлен, то он принимает текущее значение строки. Но я хочу добавить новую строку, чтобы скопировать все текущие значения строк. Как это сделать.

нужно VB.NET код помощи

+0

@Jay, winform using – JetJack

ответ

1

DataGridView имеет встроенную функцию копирования, которая должна работать.

EDIT: AddCopy не работает как рекламируемый, он вставляет пустую строку с тем же стилем, что и исходная строка. Мы должны вручную скопировать данные ячейки в новую строку. Обновленный код ниже.

For i As Integer = grvList.RowCount - 1 To 0 Step -1 
     If grvList.Rows(i).Cells(0).Value = True Then 

      Dim NewRowIndex as integer = grvList.Rows.AddCopy(i) 

      For j = 0 To (grvList.ColumnCount - 1) 
       grvList.Rows(NewRowIndex).Cells(j).value = _ 
              grvList.Rows(i).Cells(j).value 
      Next 
     End If 
Next 
Смежные вопросы