Mehrfaches bearbeiten der Checkbox einträge

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 48 Antworten in diesem Thema. Der letzte Beitrag () ist von TheDoctorWho.

    @VaporiZed Der hier:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private CheckBoxArray() As CheckBox
    3. Private Sub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. CheckBoxArray = New CheckBox() {CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8, CheckBox9, CheckBox10, CheckBox11}
    5. Dim Zähler As Integer = -1
    6. Using Sr As New IO.StreamReader("c:\Temp\prglst.mcs")
    7. Dim Lines = Sr.ReadToEnd.Split({Environment.NewLine}, StringSplitOptions.None)
    8. For Each Line In Lines
    9. Zähler = Zähler + 1
    10. Dim Part = Line.Split(New String() {";"}, StringSplitOptions.RemoveEmptyEntries)
    11. If Zähler < 11 Then
    12. CheckBoxArray(Zähler).Text = Part(0)
    13. End If
    14. Next
    15. Sr.Close()
    16. End Using
    17. End Sub
    18. End Class

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Dim WithEvents WC As WebClient = New WebClient()
    2. Dim zähler As Integer
    3. Private CheckBoxArray(zähler) As CheckBox
    4. Dim Datei() As String
    5. Dim Lines = Sr.ReadToEnd.Split({Environment.NewLine}, StringSplitOptions.None)
    6. For Each Line In Lines
    7. zähler = zähler + 1
    8. Dim part() = Line.Split(New String() {";"}, StringSplitOptions.RemoveEmptyEntries)
    9. If zähler < 11 Then
    10. CheckBoxArray(zähler).Text = part(0)
    11. Datei(zähler) = part(1)
    12. End If
    13. Next
    14. Sr.Close()


    Bei einem Testdurchgang hatte ich die Klammer weggelassen, aber dennoch ist der fehler da:
    und dieser wird bei Datei(Zähler)=Part(0) angezeigt , wenn ich diese zeile ausklammere läuft es.

    TheDoctorWho schrieb:

    Bei einem Testdurchgang hatte ich die Klammer weggelassen,
    Nö.
    Statt

    VB.NET-Quellcode

    1. Dim Part() = Line.Split(New String() {";"}, StringSplitOptions.RemoveEmptyEntries)
    hattest Du in Deinem Post stehen:

    VB.NET-Quellcode

    1. Datei = Line.Split(New String() {";"}, StringSplitOptions.RemoveEmptyEntries)

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ok das lag daran das ich noch rumgebastelt hatte, und beim kopieren vergessen hatte die zeile zu kooregieren , kann mal passieren.

    Dennoch ist der fehler noch da und kann nicht nachvollziehen woher der fehler kommt
    @TheDoctorWho Mein Code in Post #41 funktioniert.
    Was ist bei Dir anders?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Net
    3. Public Class Form1
    4. Dim WithEvents WC As WebClient = New WebClient()
    5. Dim zähler As Integer
    6. Private CheckBoxArray(zähler) As CheckBox
    7. Private dali() As String
    8. Private Sub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    9. CheckBoxArray = New CheckBox() {CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8, CheckBox9, CheckBox10, CheckBox11}
    10. zähler = -1
    11. Using Sr As New IO.StreamReader("prglst.mcs")
    12. Dim Lines = Sr.ReadToEnd.Split({Environment.NewLine}, StringSplitOptions.None)
    13. For Each Line In Lines
    14. zähler = zähler + 1
    15. Dim part() = Line.Split(New String() {";"}, StringSplitOptions.RemoveEmptyEntries)
    16. If zähler < 11 Then
    17. CheckBoxArray(zähler).Text = part(0)
    18. dali(zähler) = part(1)
    19. End If
    20. Next
    21. Sr.Close()
    22. End Using
    23. AddHandler WC.DownloadProgressChanged, AddressOf WC_DownloadProgressChanged
    24. AddHandler WC.DownloadFileCompleted, AddressOf WC_DownloadFileCompleted
    25. End Sub
    26. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    27. For Zähler = 0 To 11
    28. If CheckBoxArray(zähler).Checked = True Then
    29. End If
    30. 'WC.DownloadFileAsync(New Uri(Dat(Zähler)), "C:\softdown\" + part(Zähler),cstr(zähler)+"exe")
    31. Next
    32. End Sub
    33. Private Sub WC_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles WC.DownloadProgressChanged
    34. ProgressBar2.Value = e.ProgressPercentage
    35. End Sub
    36. Private Sub WC_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles WC.DownloadFileCompleted
    37. MsgBox("beendet", MsgBoxStyle.OkOnly)
    38. End Sub
    39. End Class


    Siehe Zeile 21 :) das ist dazugekommen
    --> dali(zähler) = part(1)

    TheDoctorWho schrieb:

    VB.NET-Quellcode

    1. Private dali() As String
    ist lediglich die Deklaration.
    Dieses Array musst Du genau so instanziieren, wie das CheckBoxArray:

    VB.NET-Quellcode

    1. dali = New String(11)
    Vielleicht nimmst Du eine List(Of String).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    und da "kommt ein fehler"?
    gibts auch eine FehlerMeldung, und wie täte die wohl lauten?
    Weil üblicherweise sind FehlerMeldungen enorm nützlich, um Fehler zu beseitigen.
    Also bei Fehlern immer diese 3 angeben:
    • Fehlermeldung (Wortlaut, auskopiert)
    • Fehler-Methode (möglichst komplett, auskopiert)
    • Angabe der Fehlerzeile.
    Jetzt läuft es wie ich es mir vorgestellt habe:)

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Net
    3. Public Class Form1
    4. Dim WithEvents WC As WebClient = New WebClient()
    5. Dim zähler As Integer
    6. Private CheckBoxArray(zähler) As CheckBox
    7. Private dali(11) As String
    8. Private Sub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    9. CheckBoxArray = New CheckBox() {CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8, CheckBox9, CheckBox10, CheckBox11}
    10. zähler = -1
    11. Using Sr As New IO.StreamReader("prglst.mcs")
    12. Dim Lines = Sr.ReadToEnd.Split({Environment.NewLine}, StringSplitOptions.None)
    13. For Each Line In Lines
    14. zähler = zähler + 1
    15. Dim part() = Line.Split(New String() {";"}, StringSplitOptions.RemoveEmptyEntries)
    16. If zähler < 11 Then
    17. CheckBoxArray(zähler).Text = part(0)
    18. dali(zähler) = part(1)
    19. End If
    20. Next
    21. Sr.Close()
    22. End Using
    23. AddHandler WC.DownloadProgressChanged, AddressOf WC_DownloadProgressChanged
    24. AddHandler WC.DownloadFileCompleted, AddressOf WC_DownloadFileCompleted
    25. End Sub


    Ich danke euch für eure unterstützung, dann bis zum nächsten problem