Hallo,
ich hatte hier schonmal die Frage gestellt, wie man einen Zufallstext aus einer Datei auf Labels übertragen kann. Das Beispielprojekt mit 4 Labels und 4 Spalten Text (1, 2, 3, 4 <- Stand in den Zeilen) hat soweit auch funktioniert. Jetzt soll das ganze aber mit 29 Labels funktionieren, tut es aber nicht...
So sieht mein Code aus.
Erst wird Farbe und Text geändert. Dann soll aus einen Button geklickt werden und der 29 Zeilen (1 Name pro Zeile) soll auf den Labels erscheinen.
Könnt ihr mir helfen?
Was ich noch vergessen habe: Er liest auch nicht alle Labels ein, mach also die Form_Load Schritte nicht bei allen Labels.
ich hatte hier schonmal die Frage gestellt, wie man einen Zufallstext aus einer Datei auf Labels übertragen kann. Das Beispielprojekt mit 4 Labels und 4 Spalten Text (1, 2, 3, 4 <- Stand in den Zeilen) hat soweit auch funktioniert. Jetzt soll das ganze aber mit 29 Labels funktionieren, tut es aber nicht...
So sieht mein Code aus.
Erst wird Farbe und Text geändert. Dann soll aus einen Button geklickt werden und der 29 Zeilen (1 Name pro Zeile) soll auf den Labels erscheinen.
Könnt ihr mir helfen?
VB.NET-Quellcode
- Public Class frmMain
- Private Sub btnSettxt_Click(sender As System.Object, e As System.EventArgs) Handles btnSettxt.Click
- Dim txtlns() As String = IO.File.ReadAllLines("a.txt", System.Text.Encoding.Default)
- Dim rnd As New Random
- Dim temp As Integer = 1
- Do
- Dim bnds As Integer = rnd.Next(0, txtlns.GetUpperBound(0) + 1)
- If Not TextExists(txtlns(bnds)) Then
- Me.Controls("lbl" & temp.ToString).Text = txtlns(bnds)
- temp += 1
- End If
- Loop Until (temp = 30)
- End Sub
- Function TextExists(ByVal txt As String) As Boolean
- For Each c As Control In Me.Controls
- If c.GetType().FullName = "System.Windows.Forms.Label" Then
- If c.Text = txt Then Return True
- End If
- Next
- Return False
- End Function
- Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- For i = 1 To 29
- Me.Controls("lbl" + i.ToString).Text = "Warte..."
- Me.Controls("lbl" + i.ToString).BackColor = Color.FromArgb(81, 81, 81)
- Next
- End Sub
- End Class
Was ich noch vergessen habe: Er liest auch nicht alle Labels ein, mach also die Form_Load Schritte nicht bei allen Labels.