Vatansever
Asistan
- Katılım
- 23 Ağustos 2007
- Mesajlar
- 405
- Reaksiyon puanı
- 1
- Puanları
- 18
Arkadaşlar ben bir textbox'tan 10 satır bilgiyi clipboarda kopyalıyorum sonra datagridviewde 5 adet satır seçip ctrl+v yapınca datagridview içine yapıştırılıyor ama seçtiğim satırları geçiyor 10 satır yapıştırılıyor acaba kaç satır seçtiysen clipboaddaki o kadar satır yapıştırlısın (Tabii sadece seçtiğim satırlara arada boşluklar olabilir buda dikkate alınmalı) gerisi yapıştırılmasın bunu nasıl yaparım?
Altta çalışşan bir kod buldum iki hatası vardı birini düzelttim yapıştırma işlemini seçtiğim satırların en alttakinden başlayarak yapıyordu şimdi düzelttim oldu ikinci problem için yardım istiyorum yapıştırma sayısını seçtiğim satır sayısına sınırlamak istiyorum ve sadece seçtiğim satırlara yapıştırma yapılacak
Altta çalışşan bir kod buldum iki hatası vardı birini düzelttim yapıştırma işlemini seçtiğim satırların en alttakinden başlayarak yapıyordu şimdi düzelttim oldu ikinci problem için yardım istiyorum yapıştırma sayısını seçtiğim satır sayısına sınırlamak istiyorum ve sadece seçtiğim satırlara yapıştırma yapılacak
Kod:
Private Sub YapıştırClipboard()
' ************************************************
' bu benim eklediğim kod
Dim ilksatır As Integer
For Each cell As DataGridViewCell In DataGridView1.SelectedCells
ilksatır = cell.RowIndex
Next
' ************************************************
Try
Dim s As String = Clipboard.GetText()
Dim lines As String() = s.Split(ControlChars.Lf)
Dim iFail As Integer = 0, iRow As Integer = ilksatır 'Me.DataGridView1.CurrentCell.RowIndex
Dim iCol As Integer = Me.DataGridView1.CurrentCell.ColumnIndex
Dim oCell As DataGridViewCell
For Each line As String In lines
If iRow < Me.DataGridView1.RowCount AndAlso line.Length > 0 Then
Dim sCells As String() = line.Split(ControlChars.Tab)
For i As Integer = 0 To sCells.GetLength(0) - 1
If iCol + i < Me.DataGridView1.ColumnCount Then
oCell = Me.DataGridView1(iCol + i, iRow)
If Not oCell.[ReadOnly] Then
If oCell.Value.ToString() <> sCells(i) Then
oCell.Value = Convert.ChangeType(sCells(i), oCell.ValueType)
'oCell.Style.BackColor = Color.Tomato
Else
iFail += 1
'only traps a fail if the data has changed
'and you are pasting into a read only cell
End If
End If
Else
Exit For
End If
Next
iRow += 1
Else
Exit For
End If
If iFail > 0 Then
MessageBox.Show(String.Format("{0} updates failed due" & " to read only column setting", iFail))
End If
Next
Catch generatedExceptionName As FormatException
MessageBox.Show("The data you pasted is in the wrong format for the cell")
Return
End Try
End Sub