VB.NET DataGridView Yapıştırma problemi var

Bu konuyu okuyanlar

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

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
 

algea

Doçent
Katılım
15 Temmuz 2011
Mesajlar
505
Reaksiyon puanı
22
Puanları
18
Bizi uğraştırmadan önce yazdığın code’u bir yerlere download edersen eğer bir kontrol edelim nerede hata yaptığını. Yazdığın code’un tamamını yolla ki nerede hata yaptığını anlayalım… Bu arada neden copy paste etmeden önce neden kendin yapmayı hiç denemedin? Unutmak gerekir ki duruma özgü hata denen bir olay var. Runtime’da çalışırken tüm modaliteleri denemelisin ki hatanın nerelerden kaynaklanabileceğini tahmin edebilesin. Copy-paste Clipboard olayı kullanıcı işlemi olduğundan hatalara açıktır olası tüm durumları tahmin etmen gerekir.
 
Üst