Ich habe ein Formular mit ein paar Datagridviews, die mit Daten aus verschiedenen Datenbanken gefüllt sind (Screenshot 1) Wenn ich mit der rechten Maustaste auf ein neues Formular erscheint, was ich will um mit allen Daten aus der ausgewählten Zeile zu füllen (Abbildung 2) enter image description here In meinem Code habe ich die Nummer 1376 fest codiert, um zu sehen, ob sie funktioniert. Wenn ich die Nummer 1376 durch ValuePass ersetze, wird es nicht funktionieren. Also muss ich irgendwie diesen Wert weitergeben. Es hat dasselbe für ein Stück Schnur getan, das funktioniert, aber es scheint nicht für den Wert zu arbeiten.Füllen Sie Formular mit einem übergebenen Wert aus einem anderen Formular mit Visual Studio
So ist es das, was ich in meinem ersten Formular so weit gekommen
Public Class Relatie_beheer
Public SQL As New SQLControl
Dim value As Object
Private Sub dvgRelaties_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
Handles dgvRelaties.CellClick
If (e.RowIndex = -1 Or e.ColumnIndex = -1) Then Return
' No matter which cell is clicked, put the data from the field in the relatie_nr column in the variable value
Dim x As Integer
x = e.ColumnIndex + (3 - e.ColumnIndex)
value = dgvRelaties.Rows(e.RowIndex).Cells(x).Value
End Sub
Private Sub WijzigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WijzigenToolStripMenuItem.Click
Dim Obj As New RelatieNieuw With {
.StringPass = "Wijzigen"
}
Dim ValObj As New RelatieNieuw With {
.ValuePass = value
}
Obj.ShowDialog()
End Sub
Und in meinem zweiten Form
Public Class RelatieNieuw
Public SQL As New SQLControl
Public Property StringPass As String
Public Property ValuePass As String
Private Sub RelatieNieuw_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label2.Text = StringPass + " Relatie"
Select Case StringPass
Case "Toevoegen"
' Open new window and create a new private key number
Case "Wijzigen"
' Open new window and retrieve relatie fields to change
SQL.AddParam("@item", 1376)
SQL.ExecQuery("SELECT * FROM relatie WHERE Relatie_nr = @item;")
txtzoeknaam.Text = SQL.DBDT.Rows(0)(1).ToString
Case "Verwijder"
' Open new window and retrieve relatie fields to delete
Case Else
MsgBox("Option not defined " + StringPass)
End Select
End Sub
Ja, das ist im Grunde das gleiche wie die erwähnte Lösung. Ich habe ein Komma im obigen Code vergessen. Ich habe den ursprünglichen Post bearbeitet. – Veeke