2017-04-01 7 views
0

ich habe 2 DGV Name dataListBarang und dataListTransaksi, ich versuche dataListTransaksi spesific Spalte nama_barang aus bestimmten Spalte in dataListBarangnm_barangVB.NET - Füllen Sie bestimmte Spalte von Datagridview eine andere Spalte

mein Code so weit

genannt genannt zu füllen
Private Sub dataListBarang_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dataListBarang.CellContentDoubleClick 
     If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then 
      namaBarang = Me.dataListBarang.CurrentRow.Cells(0).Value.ToString 
      dataListTransaksi.Columns(1).DataPropertyName = namaBarang 
     End If 
     dataListBarang.Refresh() 
    End Sub 

wenn ich auf DGV verdoppeln dataListBarang, Spalte nama_barang (auf dataListTransaksi) wird mit dem Wert aus der Spalte nm_barang auf DGV gefüllt dataListBarang, aber seine nicht funktioniert Ing.

bitte helfen.

EDIT , was ich versuche, aus der aktuellen Zeile Kopie Zelle, wenn auf sie Benutzer doppelklicken Sie dann auf den zweiten Datagrid die erste Zeile füllen zu tun (Datagrid Spalten ohne Daten enthält) in bestimmten Spalte.

enter image description here

Anmerkung:

  1. siehe die linke Datagrid-Daten hat und die richtige Datagrid ist leer
  2. die Nummer sehen !, wenn Doppelklick auf Benutzer, wird der Wert von 1 bis Nummer kopiert 2
  3. Der größte Teil der Spalte im rechten dataGrid wird manuell eingegeben (außer Nama Barang) und in der Datenbank gespeichert
+0

Versuchen Sie, die ganze Spalte oder nur die Zelle zu kopieren? Sind die Gitterdaten außerdem gebunden? Das Festlegen der Zielspalten DataPropertyName ... wird offensichtlich nicht funktionieren. – JohnG

+0

Ja, ich versuche Zelle in Spalte zu kopieren, die erste dgv ('dataListBarang') ist Daten gebunden (aus der Tabelle gelesen) aber zweite dgv (' dataTransaksiBarang') ist nicht, weil die zweite dgv manuell eingegeben wird (einfügen zu Tisch). – reynd

+0

Wenn Sie eine einzelne Zelle kopieren ... wo würden Sie diese Zelle in das andere Raster kopieren? Beispiel: Der Benutzer klickt doppelt auf die Zelle in Zeile 3, Spalte 3 im ersten Raster ... Würden Sie diese Zelle in dieselbe Zeile und Spalte im anderen Raster kopieren? – JohnG

Antwort

0

Was Ihr Bild zeigt ist eine leere DataGridView auf der rechten Seite. Wenn Sie die Zelle vom linken Gitter in die Zelle im rechten Gitter kopieren, wie das Bild zeigt, werden einige Probleme auftreten. Sie müssen zuerst eine neue Zeile hinzufügen. Andernfalls überschreiben nachfolgende Doppelklicks vom Benutzer einfach den vorherigen Doppelklick. Der folgende Code überprüft, ob der Doppelklick aus Spalte 0 stammt und fügt dem Raster auf der rechten Seite einfach eine neue Zeile hinzu. Der Wert in Spalte 0 wird in die neue Zeilenspalte 1 kopiert. Hoffe ich verpasse nichts.

Private Sub dataListBarang_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dataListBarang.CellContentDoubleClick 
    Dim row As Integer = e.RowIndex 
    Dim col As Integer = e.ColumnIndex 
    If (col = 0) Then 
    dataListTransaksi.Rows.Add("", dataListBarang.Rows(row).Cells(0).Value) 
    End If 
End Sub 

Update: Wenn Sie nicht wissen, welche Spalte zu kopieren, aber Sie wissen, seinen Namen ..

Private Sub dataListBarang_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dataListBarang.CellContentDoubleClick 
    Dim row As Integer = e.RowIndex 
    Dim col As Integer = e.ColumnIndex 
    If (col = 0) Then 
    Dim newRowIndex As Integer = dataListTransaksi.Rows.Add() 
    dataListTransaksi.Rows(newRowIndex).Cells("MyColName").Value = dataListBarang.Rows(row).Cells(0).Value 
    End If 
End Sub 
+0

Dank @JhonG, ich habe meine Lösung basierend auf Ihrer Antwort erstellt. – reynd

0

i geändert meinen Code basiert auf Antwort von @JhonG

Private Sub dataListBarang_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dataListBarang.CellContentDoubleClick 
     Dim row As Integer = e.RowIndex 
     Dim col As Integer = e.ColumnIndex 
     namaBarang = Me.dataListBarang.CurrentRow.Cells(0).Value.ToString 
     If (col = 0) Then 

      If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then 
       dataListTransaksi.Rows.Add("", namaBarang) 
       'hargaBarang = Me.dataListBarang 
       'Me.dataListTransaksi.CurrentRow.Cells(1).Value = namaBarang 
      End If 
     End If 

wenn Ich doppelklicke auf FirstDataGrid, kopiere den Wert auf ein anderes DataGrid und füge eine neue Zeile hinzu.

+0

Ich könnte hier falsch liegen ... aber überprüfen, ob "e" s Zeile oder Spalte ist weniger als Null ist nicht notwendig, da ein Doppelklick außerhalb des Gitters wird nicht ausgelöst dieses Ereignis. Sie können hier ziemlich genau eine gültige Zelle garantieren, selbst der Doppelklick der neuen Zeile löst dieses Ereignis nicht aus. Nur ein Gedanke. – JohnG

Verwandte Themen