2017-03-10 2 views
1

Ich brauche Hilfe beim Ausfüllen einiger Zellen mit zufälligen 1s und 0s aus einem NxN Array. Wie Sie auf dem Bild sehen können, füllt es nicht die 4x4-Array. enter image description hereFüllen von Zellen aus DataGridView der Größe N

Public Class Proyecto 
    Dim columna, fila As Byte 

    'Dim rnd As New Random 
    Private Sub B_Ingresar_Click(sender As Object, e As EventArgs) Handles B_Ingresar.Click 
    Dim i As Byte 
    Dim r As Byte 
    columna = Val(TB_TamX.Text) 
    fila = Val(TB_TamY.Text) 

    Me.DGV.ColumnCount = columna 
    Me.DGV.RowCount = fila 
    Me.DGV.RowHeadersWidth = 60 

    For i = 0 To columna - 1 
     Me.DGV.Columns(i).Width = 40 
     Me.DGV.Columns(i).HeaderText = i + 1 
     r = CInt((Rnd() * 1)) 
     DGV.Rows.Add(Str(r)) 
     'DGV.Columns.Add(Tostr(r)) 

    Next 
    For i = 0 To fila - 1 
     Me.DGV.Rows(i).HeaderCell.Value = (i + 1).ToString 
     ' r = CInt((Rnd() * 1)) 
     ' DGV.Rows.Add(Str(r)) 
    Next 
End Sub 

Antwort

0

Um die Dinge einfach zu halten ... Schleife durch die Spalten und die Spaltenüberschriften festgelegt. Die erste Schleife tut dies, aber sie versucht auch, eine Zeile hinzuzufügen, die nicht benötigt wird. Nehmen Sie die DGV.Rows.Add und zufällige Sachen heraus, da diese Schleife einfach den Spaltenkopftext hinzufügt. Machen Sie dasselbe mit den Zeilen wie die nächste for-Schleife, um den Zeilenkopftext zu setzen. Was fehlt, ist eine doppelte Schleife, um durch die Zeilen und Spalten zu gehen und jede Zelle einen zufälligen booleschen Wert zu setzen. Hoffnung, die Sinn macht.

For i = 0 To fila - 1 
    Dim curRow = DGV.Rows(i) 
    For j = 0 To columna - 1 
    r = CInt((Rnd() * 1)) 
    curRow.Cells(j).Value = r.ToString() 
    Next 
Next 
+0

Danke, es hat perfekt funktioniert. Ich schätze deine Hilfe sehr –

Verwandte Themen