Nachträgliches Ändern von Icons bei Buttons

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Andy112.

    Nachträgliches Ändern von Icons bei Buttons

    Hallo Zusammen,

    ich hätte eine kurze Frage und zwar habe ich eine Form erstellt wo 54 Buttons drauf sind die jeweils einen Ausgang einer SPS steuern.
    Nun dachte ich mir ich weise beim Start den Buttons jeweils ein unterschiedliches Icon zu. ( Dies funktioniert auch super ). Da ich bisher nur 5 verschieden Icons verwendet habe mir aber gerne die möglichkeit der Nachträglichen Änderung eines Icons einbauen wollte dachte ich mir Ich lege einfach 16 weiter Icons an und bei bedarf tausche ich diese im Anwendungsordner aus und bennen sie einfach gleich.

    Leider hab ich mittlerweile auch rausgefunden dass dies nicht machbar ist.

    Wüsstet ihr eine Möglichkeit dies zu Bewerkstelligen ?

    Quellcode

    1. For ButtonNumber = 1 To 8
    2. Str = "FunktionsButton" & ButtonNumber
    3. Me.Controls("fButton" & ButtonNumber).Text = XMLSet.Element("doc").Element(Str).Element("Alias").Value
    4. Me.Controls("fButton" & ButtonNumber).Visible = XMLSet.Element("doc").Element(Str).Element("ButtonEnabled").Value
    5. 'fButton1.Icon = Application.StartupPath & "\IGC_1.png"
    6. Select Case XMLSet.Element("doc").Element(Str).Element("ButtonIcon").Value
    7. Case 0
    8. Icon_zuweisen(ButtonNumber, My.Resources.IGC_0)
    9. Case 1
    10. Icon_zuweisen(ButtonNumber, My.Resources.IGC_1)
    11. Case 2
    12. Icon_zuweisen(ButtonNumber, My.Resources.IGC_2)
    13. Case 3
    14. Icon_zuweisen(ButtonNumber, My.Resources.IGC_3)
    15. Case 4
    16. Icon_zuweisen(ButtonNumber, My.Resources.IGC_4)
    17. Case 5
    18. Icon_zuweisen(ButtonNumber, My.Resources.IGC_5)
    19. Case 6
    20. Icon_zuweisen(ButtonNumber, My.Resources.IGC_6)
    21. Case 7
    22. Icon_zuweisen(ButtonNumber, My.Resources.IGC_7)
    23. Case 8
    24. Icon_zuweisen(ButtonNumber, My.Resources.IGC_8)
    25. Case 9
    26. Icon_zuweisen(ButtonNumber, My.Resources.IGC_9)
    27. Case 10
    28. Icon_zuweisen(ButtonNumber, My.Resources.IGC_10)
    29. Case 11
    30. Icon_zuweisen(ButtonNumber, My.Resources.IGC_11)
    31. Case 12
    32. Icon_zuweisen(ButtonNumber, My.Resources.IGC_12)
    33. Case 13
    34. Icon_zuweisen(ButtonNumber, My.Resources.IGC_13)
    35. Case 14
    36. Icon_zuweisen(ButtonNumber, My.Resources.IGC_14)
    37. Case 15
    38. Icon_zuweisen(ButtonNumber, My.Resources.IGC_15)
    39. Case 16
    40. Icon_zuweisen(ButtonNumber, My.Resources.IGC_16)
    41. Case 17
    42. Icon_zuweisen(ButtonNumber, My.Resources.IGC_17)
    43. Case 18
    44. Icon_zuweisen(ButtonNumber, My.Resources.IGC_18)
    45. Case 19
    46. Icon_zuweisen(ButtonNumber, My.Resources.IGC_19)
    47. Case 20
    48. Icon_zuweisen(ButtonNumber, My.Resources.IGC_20)
    49. Case Else
    50. Icon_zuweisen(ButtonNumber, Nothing)
    51. End Select
    52. 'Me.Controls("fButton" & ButtonNumber).Visible = XMLSet.Element("doc").Element(Str).Element("ButtonIcon").Value
    53. Next
    54. Public Function Icon_zuweisen(ByVal Btn As Int32, ByVal Icn As Image)
    55. Select Case Btn
    56. Case 1
    57. fButton1.Icon = Icn
    58. Case 2
    59. fButton2.Icon = Icn
    60. Case 3
    61. fButton3.Icon = Icn
    62. Case 4
    63. fButton4.Icon = Icn
    64. Case 5
    65. fButton5.Icon = Icn
    66. Case 6
    67. fButton6.Icon = Icn
    68. Case 7
    69. fButton7.Icon = Icn
    70. Case 8
    71. fButton8.Icon = Icn
    72. End Select
    73. Return True
    74. End Function


    Ich hab auch schon ausprobiert den Pfad anzugeben und in der Function anstatt ByVal Icn As Image als Object leider ohne erfolg.


    Vielen Dank schonmal und ein angenehmes Wochenende.
    Sorry - der Code ist komplett unbrauchbar.
    Wert-Lesen aus dem XDocument ok, aber zuweisen des Button-Icons ist total planlos.

    Andy112 schrieb:

    Nun dachte ich mir ich weise beim Start den Buttons jeweils ein unterschiedliches Icon zu. ( Dies funktioniert auch super ).
    Das wäre doch ein Ansatz - wie sieht denn da der Code aus, der super funktioniert?

    ErfinderDesRades schrieb:

    Sorry - der Code ist komplett unbrauchbar.
    Wert-Lesen aus dem XDocument ok, aber zuweisen des Button-Icons ist total planlos.
    ;(
    @ErfinderDesRades inwiefern meinst du des mit Planlos ? :?:
    denn dieser Code funktioniert ja Super , Problem daran ist nur es können nur Icons verwendet werden die auch im Project als Ressource sind. Nur würde ich gern halt Icons verwenden die im Anwendungsordner als Icons gespeichert sind ?
    @Andy112 Bei mir (WinForm) haben Buttons keine Property Icon.
    Die Property Image kannst Du so ändern:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    3. Button1.Image = Image.FromFile("C:\Temp\Image1.jpg")
    4. End Sub
    5. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    6. Button1.Image = Image.FromFile("C:\Temp\Image2.jpg")
    7. End Sub
    8. 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!