Problem mit 2. windows form

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von user2100.

    Problem mit 2. windows form

    hi,

    ich habe ein programm mit 2 formen. wobei die 2. form für einstellungen sind.

    hatte bei der 2. form 6 buttons mit code versehen.funzte aber am ende leider nicht so wie ich es mir dachte.
    habe sie kurzer hand duch checkboxen ersetzt den code einfach von den buttons in die checkbox verschoben.
    etwas abgeändert damit es zur checkbox pass. nun wollte ich es testen und nun kann die 2. form nicht mehr geöffnet werden.
    es liegt auf jedenfall an den checkboxen. ka was da das problem ist.

    hier der code:

    VB.NET-Quellcode

    1. Private Sub ac1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ac1.CheckedChanged
    2. Dim icon1 As Icon = Icon.ExtractAssociatedIcon(item1txt.Text)
    3. Dim icon2 As Bitmap = icon1.ToBitmap
    4. If ac1.Checked = True Then
    5. Form1.Panel2.BackgroundImage = icon2
    6. Form1.Panel2.BackgroundImageLayout = ImageLayout.Stretch
    7. Form1.Panel2.BackColor = Color.Transparent
    8. My.Settings.Save()
    9. Else
    10. Form1.Panel2.BackgroundImage = Nothing
    11. Form1.Panel2.BackgroundImageLayout = ImageLayout.Stretch
    12. Form1.Panel2.BackColor = Color.Transparent
    13. My.Settings.Save()
    14. End If
    15. End Sub
    16. Private Sub ac2_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ac2.CheckedChanged
    17. Dim icon3 As Icon = Icon.ExtractAssociatedIcon(item2txt.Text)
    18. Dim icon4 As Bitmap = icon3.ToBitmap
    19. If ac2.Checked = True Then
    20. Form1.Panel3.BackgroundImage = icon4
    21. Form1.Panel3.BackgroundImageLayout = ImageLayout.Stretch
    22. Form1.Panel3.BackColor = Color.Transparent
    23. My.Settings.Save()
    24. Else
    25. Form1.Panel3.BackgroundImage = Nothing
    26. Form1.Panel3.BackgroundImageLayout = ImageLayout.Stretch
    27. Form1.Panel3.BackColor = Color.Transparent
    28. My.Settings.Save()
    29. End If
    30. End Sub
    31. Private Sub ac3_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ac3.CheckedChanged
    32. Dim icon5 As Icon = Icon.ExtractAssociatedIcon(item3txt.Text)
    33. Dim icon6 As Bitmap = icon5.ToBitmap
    34. If ac3.Checked = True Then
    35. Form1.Panel4.BackgroundImage = icon6
    36. Form1.Panel4.BackgroundImageLayout = ImageLayout.Stretch
    37. Form1.Panel4.BackColor = Color.Transparent
    38. My.Settings.Save()
    39. Else
    40. Form1.Panel4.BackgroundImage = Nothing
    41. Form1.Panel4.BackgroundImageLayout = ImageLayout.Stretch
    42. Form1.Panel4.BackColor = Color.Transparent
    43. My.Settings.Save()
    44. End If
    45. End Sub
    46. Private Sub ac4_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ac4.CheckedChanged
    47. Dim icon7 As Icon = Icon.ExtractAssociatedIcon(item4txt.Text)
    48. Dim icon8 As Bitmap = icon7.ToBitmap
    49. If ac4.Checked = True Then
    50. Form1.Panel5.BackgroundImage = icon8
    51. Form1.Panel5.BackgroundImageLayout = ImageLayout.Stretch
    52. Form1.Panel5.BackColor = Color.Transparent
    53. My.Settings.Save()
    54. Else
    55. Form1.Panel5.BackgroundImage = Nothing
    56. Form1.Panel5.BackgroundImageLayout = ImageLayout.Stretch
    57. Form1.Panel5.BackColor = Color.Transparent
    58. My.Settings.Save()
    59. End If
    60. End Sub
    61. Private Sub ac5_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ac5.CheckedChanged
    62. Dim icon9 As Icon = Icon.ExtractAssociatedIcon(item5txt.Text)
    63. Dim icon0 As Bitmap = icon9.ToBitmap
    64. If ac5.Checked = True Then
    65. Form1.Panel6.BackgroundImage = icon0
    66. Form1.Panel6.BackgroundImageLayout = ImageLayout.Stretch
    67. Form1.Panel6.BackColor = Color.Transparent
    68. My.Settings.Save()
    69. Else
    70. Form1.Panel6.BackgroundImage = Nothing
    71. Form1.Panel6.BackgroundImageLayout = ImageLayout.Stretch
    72. Form1.Panel6.BackColor = Color.Transparent
    73. My.Settings.Save()
    74. End If
    75. End Sub
    76. Private Sub ac6_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ac6.CheckedChanged
    77. Dim icon11 As Icon = Icon.ExtractAssociatedIcon(item6txt.Text)
    78. Dim icon12 As Bitmap = icon11.ToBitmap
    79. If ac6.Checked = True Then
    80. Form1.Panel7.BackgroundImage = icon12
    81. Form1.Panel7.BackgroundImageLayout = ImageLayout.Stretch
    82. Form1.Panel7.BackColor = Color.Transparent
    83. My.Settings.Save()
    84. Else
    85. Form1.Panel7.BackgroundImage = Nothing
    86. Form1.Panel7.BackgroundImageLayout = ImageLayout.Stretch
    87. Form1.Panel7.BackColor = Color.Transparent
    88. My.Settings.Save()
    89. End If
    90. End Sub


    pic von der 2. form



    mfg chris :)
    als an der stelle noch buttons waren hat alles gefunzt.

    doch also in den textboxen ist ein pfad gespeichert der zu einer exe datei führt. von der exe datei soll nun das icon in der 1. form angezeigt werden.
    hat ja mit buttons auch gefunzt aber nicht mit checkboxen. ka. warum. als eine checkbox erstellt hatte um es zu testen hatte ich den den button noch in der form da funzte es aber als ich die buttons entfernt hatte funzte garnichts mehr. ka warum

    hier die fehlermeldung:

    Nix FormX.Show(), das ist historischer VB6-Scheiß, der nicht .NET-kompatibel ist.
    modaler Dialog:

    VB.NET-Quellcode

    1. Using dlg As New FormX
    2. dlg.ShowDialog()
    3. End Using
    nicht modaler Dialog:

    VB.NET-Quellcode

    1. Private dlg2 As FormX
    2. Private Sub xxx()
    3. if dlg2 Is Nothing OrElse dlg2.IsDisposed Then
    4. dlg2 = New FormX
    5. End If
    6. If Not dlg2.Visible Then
    7. 'dlg2.Show() ' kann hinter die aufrufende Form geklickt werden
    8. ' oder
    9. dlg2.Show(Me) ' bleibt vor der aufrufenden Form
    10. End If
    11. End Sub
    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!
    @user2100

    Möchtest du nur die Pfade in den Settings speichern ?
    Wenn ja was ist da das Problem. Im TextBox_Changed Event könntest du die Veränderung in dem jeweiligen Setting speichern und im nächsten Load abfragen.

    Programmiertechnisch ist es dann noch besser, vorher zu überprüfen ob die Datei noch existiert.

    Edit:

    VB.NET-Quellcode

    1. Private Sub ac5_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ac5.CheckedChanged
    2. Dim icon9 As Icon = Icon.ExtractAssociatedIcon(item5txt.Text)
    3. Dim icon0 As Bitmap = icon9.ToBitmap
    4. If ac5.Checked = True Then
    5. Form1.Panel6.BackgroundImage = icon0
    6. Form1.Panel6.BackgroundImageLayout = ImageLayout.Stretch
    7. Form1.Panel6.BackColor = Color.Transparent
    8. My.Settings.Save()
    9. Else
    10. Form1.Panel6.BackgroundImage = Nothing
    11. Form1.Panel6.BackgroundImageLayout = ImageLayout.Stretch
    12. Form1.Panel6.BackColor = Color.Transparent
    13. My.Settings.Save()
    14. End If
    15. End Sub


    Hier weißt du deinen Settings ja gar keinen Wert zu.

    Du musst vorher eine Variable als Setting anlegen, welche du mit "My.Settings.Name" ansprichst.
    Guck dir das mal an :)
    ja das ist es. nur wenn ich unter properties nen wert auswählen will, weiss ich nicht welchen wert ich dort verwenden muss.

    nee diejeweiligen programm icons die dann auf der 1. form zusehen sind sollen nach beendigung des progr. gespeichert werden.sodass die icons nach neuem programmstart immernoch zu sehen sind.

    das programm soll eine schnellstart möglichkeit sein da ich nicht alle verknüpfungen aufn desktop haben will. ziehe ich mir das prog. auf meinen 2. monitor und klicke bloß auf die icons(form1) und schon wird das jeweilige programm gestartet.

    hab es jetzt aber anders lösen können. also funzt das prog. jetzt so wie es soll :)
    danke für die ganzen hilfen :)

    user2100 schrieb:

    hab es jetzt aber anders lösen können. also funzt das prog. jetzt so wie es soll :)
    Wetten, dass nicht?
    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!