Update 5/21/17. Vielen Dank für den Vorschlag, eine Tabelle zu verwenden. Das war hilfreich. Ich habe es herausgefunden. Ich machte myinputable zu einer globalen Variable, indem ich die Dim-Anweisung oben deklarierte und sie zu einem Datagridview-Typ machte. Jetzt kann ich es in dem anderen Fall ausschalten, in dem ich es tun musste.Erfassen eines Ereignisses wie Mausklick in Datagridview in VB
Ich bin ein Neuling. Ich habe eine Datagridview in VB 2015 erstellt, um eine Reihe von Daten aus der Verwendung zu erfassen. Wenn der Benutzer mit der Dateneingabe fertig ist, möchte ich die Zellenwerte in meinen Variablen speichern. Ich weiß nicht, wie ich ein Ereignis aus meiner dynamisch erstellten Datagridview "myinputable" erfassen kann. Mein Code ist unten. Bitte helfen Sie.
Private Sub inputmodel() Dim Prompt As String Dim k As Integer ' ' zuerst das Problem Titel und die Anzahl der Ziele und Alternativen bekommen ' prompt = "Problem Titel eingeben:" title = InputBox (Eingabeaufforderung) prompt = "Geben Sie die Anzahl der Kriterien:" nobj = InputBox (Prompt) prompt = "Geben Sie die Anzahl der Alternativen:" NALT = InputBox (Prompt) '
' erstellen nun die Tabelle ' Dim Myinputable As New Datagridview Dim combocol As New DataGridViewComboBoxColumn combocol.Items.AddRange ("Erhöhung", "Decreaing", "Threashold")
For k = 1 To 6
If k <> 2 Then
Dim nc As New DataGridViewTextBoxColumn
nc.Name = ""
Myinputable.Columns.Add(nc)
Else
Myinputable.Columns.AddRange(combocol)
End If
Next k
' now add the rows and place the spreadsheet on the form
Myinputable.Rows.Add(nobj - 1)
Myinputable.Location = New Point(25, 50)
Myinputable.AutoSize = True
Me.Controls.Add(Myinputable)
FlowLayoutPanel1.Visible = True
Myinputable.Columns(0).Name = "Name"
Myinputable.Columns(0).HeaderText = "Name"
Myinputable.Columns(1).Name = "Type"
Myinputable.Columns(1).HeaderText = "Type"
Myinputable.Columns(2).Name = "LThresh"
Myinputable.Columns(2).HeaderText = "Lower Threshold"
'Myinputable.Columns(2).ValueType = co
Myinputable.Columns(3).Name = "UThresh"
Myinputable.Columns(3).HeaderText = "Upper Threshold"
Myinputable.Columns(4).Name = "ABMin"
Myinputable.Columns(4).HeaderText = "Abs. Minimum"
Myinputable.Columns(5).Name = "ABMax"
Myinputable.Columns(5).HeaderText = "Abs. Maximum "
Myinputable.Rows(0).Cells(0).Value = "Help"
If Myinputable.Capture = True Then
MsgBox(" damn ")
End If
End Sub
Das DataGridView ist in erster Linie dazu gedacht, dem Benutzer eine * Ansicht * der * Daten * zu präsentieren. Es kann Daten speichern, aber dafür gibt es bessere Mechanismen - eine DataTable. - Damit können Sie auch numerische Werte als numerische Typen speichern. Keine Notwendigkeit für irgendwelche Heldentaten - der DGV wird die Daten in der DataTable für Sie speichern. – Plutonix