Wie weiße ich Arrays Werte durch eine Inputbox zu; und gebe diese anschließen wieder in einem DataGridView aus?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Wie weiße ich Arrays Werte durch eine Inputbox zu; und gebe diese anschließen wieder in einem DataGridView aus?

    Guten Abend,
    Mein Lehrer hat uns folgende Aufgabe gegeben, jedoch wurde dies nicht wirklich erklärt ^^
    Jedenfalls wollte er, dass wir 5 Arrays Werte zuweisen. Die Werte sollen wir nacheinander durch Input-Boxen festlegen. Seine Vorlage und Oberfläche habe ich unten hinzugefügt.

    Visual Basic-Quellcode

    1. Public Class Form1
    2. 'Deklaration von Variablen
    3. Private Wert As String
    4. Private x As Integer
    5. 'Deklaration eines eindimensionalen Arrays
    6. Private VArray(4) As Object
    7. 'Prozedur, zum Einrichten des Grids
    8. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    9. 'Einrichten der Tabelle
    10. 'Tabelle gegen Veränderungen sichern
    11. dgv_Tabelle.AllowUserToAddRows = False
    12. dgv_Tabelle.ReadOnly = True
    13. 'Anzahl der Spalten mit Namen und Beschriftung
    14. dgv_Tabelle.Columns.Add("Sp1", "Spalte 1")
    15. dgv_Tabelle.Columns.Add("Sp2", "Spalte 2")
    16. dgv_Tabelle.Columns.Add("Sp3", "Spalte 3")
    17. dgv_Tabelle.Columns.Add("Sp4", "Spalte 4")
    18. dgv_Tabelle.Columns.Add("Sp5", "Spalte 5")
    19. 'Zeilenköpfe ausblenden
    20. dgv_Tabelle.RowHeadersVisible = False
    21. For x = 0 To 4
    22. 'Spaltenbreiten festlegen
    23. dgv_Tabelle.Columns(x).Width = 63
    24. 'zentriertes Ausrichten der Zellinhalte
    25. dgv_Tabelle.Columns(x).DefaultCellStyle _
    26. .Alignment = DataGridViewContentAlignment.MiddleCenter
    27. Next
    28. 'Zentrieren der Spaltenköpfe
    29. dgv_Tabelle.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    30. 'Zeile hinzufügen
    31. dgv_Tabelle.Rows.Add()
    32. End Sub
    33. 'Prozedur zum Beenden des Programms
    34. Private Sub cmd_Beenden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Beenden.Click
    35. Me.Close()
    36. End Sub
    37. 'Prozedur zum schreiben des Arrays
    38. Private Sub cmd_Schreiben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Schreiben.Click
    39. End Sub
    40. 'Prozedur zum Ausgeben der Arraywerte
    41. Private Sub cmd_Ausgeben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Ausgeben.Click
    42. End Sub
    43. End Class



    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „NoSTrack“ ()

    Für die Arrays Werte zuzuweißen würde ich es jetzt so machen. Ist das richtig?

    Visual Basic-Quellcode

    1. Private Sub cmd_Schreiben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Schreiben.Click
    2. For x = 0 To 4
    3. Wert = InputBox("Bitte geben Sie einen Wert ein!")
    4. VArray(x) = Wert
    5. Next
    6. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „NoSTrack“ ()

    Trenne dich wenn möglich von diesem Unterricht - da lernst du vmtl. nichts.

    Wenn das Bild das zeigt wie was es aussieht, dann kann dein Lehrer scheints kein eindimensionales Array von einem 2D-Array unterscheiden.
    Oder er meint ein Array von Datensätzen, mit je Properties namens Spalte1, Spalte2, Spalte3, Spalte4, Spalte5

    Ein Datensatz-Array mag zwar eindimensional sein, aber ist als Einstieg denkbar ungeeignet, um das Wesen von Arrays zu verstehen, denn - insbesondere in deim Bild - es wird ja als Tabelle dargestellt.

    Klär mal deinen Lehrer auf: Eine Tabelle ist vom Prinzip her schon 2-dimensional - Zeilen und Spalten - hatter schoma was von gehört?

    Aber dass er Ruhe gibt:

    VB.NET-Quellcode

    1. Private Sub cmd_Schreiben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    2. Dim arr(4) As String
    3. For x = 0 To 4
    4. arr(x) = Microsoft.VisualBasic.InputBox("Bitte geben Sie einen Wert ein!")
    5. Next
    6. DataGridView1.Rows.Add(arr)
    7. End Sub
    Wie gesagt: das ist eine zwei-dimensionale Eingabe, denn wenn du das mehrmals betätigst, entstehen mehrere Zeilen im DGV.
    ok danke. ich werde es ihm ausrichten :D

    Habe es jetzt folgendermaßen noch hinbekommen. Bei deiner Variante wird nämlich noch eine Row hinzugefügt. So wird es in die erste geschrieben:

    Visual Basic-Quellcode

    1. 'Prozedur zum schreiben des Arrays
    2. Private Sub cmd_Schreiben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Schreiben.Click
    3. For x = 0 To 4
    4. Wert = InputBox("Bitte geben Sie einen Wert ein!", "Wertbestimmung der Arrays")
    5. VArray(x) = Wert
    6. Next
    7. End Sub
    8. 'Prozedur zum Ausgeben der Arraywerte
    9. Private Sub cmd_Ausgeben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Ausgeben.Click
    10. For x = 0 To 4
    11. dgv_Tabelle.Rows(0).Cells(x).Value = VArray(x)
    12. Next
    13. End Sub

    Fein, und wenn du nu programmieren lernen willst, dann empfehle ich dir dringendst: Visual Studio - Empfohlene Einstellungen - denn wie dein VS eingestellt ist, so kann man nicht programmieren lernen - dein Lehrer ist vmtl. ein Beispiel dafür, was dabei herauskommt (der hat vmtl. noch nie davon gehört, und wird es auch nicht hören wollen).