[TUT] Eigenen Icon-Button mit Systemicons erstellen

    • VB.NET

      [TUT] Eigenen Icon-Button mit Systemicons erstellen

      Edit by ErfinderDesRades: (Thema verschoben)
      Für ein Tut ist der Code doch sehr suboptimal.
      Aber er zeigt immerhin, wie man eigene Controls codet, wie einfach man SystemIcons zugreifen und in Bitmaps umwandeln kann. :thumbup:



      Hallo,
      Ich zeige euch wie ihr einen Button mit Systemicons Erstellen könnt und auf Button Klick immer ein Anderes SystemIcon erscheint.
      Der Code für den Button:

      VB.NET-Quellcode

      1. Public Class IcButton
      2. Inherits Button
      3. Public Enum Icons As Integer
      4. Shield
      5. Information
      6. WinLogo
      7. ErrorIC
      8. Warning
      9. NoImage
      10. End Enum
      11. Private _m As Icons
      12. ''' <summary>
      13. ''' Gibt zurück ob das Angegebene Icon das ist was Angegeben war. Returnt Boolean!
      14. ''' </summary>
      15. ''' <param name="ic"></param>
      16. ''' <returns></returns>
      17. ''' <remarks></remarks>
      18. Public Function IsIt(ic As Icons) As Boolean
      19. If _m = ic Then
      20. Return True
      21. Else
      22. Return False
      23. End If
      24. End Function
      25. ''' <summary>
      26. ''' Setzt das angegebene Icon als Standart!
      27. ''' </summary>
      28. ''' <param name="ic"></param>
      29. ''' <remarks></remarks>
      30. Public Sub SetIt(ic As Icons)
      31. Icon = ic
      32. End Sub
      33. Public Property Icon As Icons
      34. Get
      35. Try
      36. Dim i As String = Image.ToString
      37. If i = "" Or i = " " Then
      38. Return Icons.NoImage
      39. Else
      40. Return _m
      41. End If
      42. Catch ex As Exception
      43. Return Icons.NoImage
      44. End Try
      45. End Get
      46. Set(value As Icons)
      47. _m = value
      48. TextImageRelation = Windows.Forms.TextImageRelation.ImageBeforeText
      49. If _m = Icons.ErrorIC Then
      50. Image = SystemIcons.Error.ToBitmap
      51. ElseIf _m = Icons.Information Then
      52. Image = SystemIcons.Information.ToBitmap
      53. ElseIf _m = Icons.Warning Then
      54. Image = SystemIcons.Warning.ToBitmap
      55. ElseIf _m = Icons.Shield Then
      56. Image = SystemIcons.Shield.ToBitmap
      57. ElseIf _m = Icons.WinLogo Then
      58. Image = SystemIcons.WinLogo.ToBitmap
      59. ElseIf _m = Icons.NoImage Then
      60. Image = Nothing
      61. End If
      62. End Set
      63. End Property
      64. End Class

      Das ist der Button!
      Jetzt den Button zur Form adden per code oder Designer.
      Per Code:

      VB.NET-Quellcode

      1. Public Class MyForm
      2. inherits Forms.Form
      3. Friends WithEvents IcButton1 As New IcButton
      4. Public Sub Load(Sender as object, e as Eventargs) Handles MyBase.Load
      5. IcButton1.Text = "blahblah"
      6. IcButton1.Icon = IcButton.Icons.NoImage
      7. IcButton1.Location = New Point (10, 10)
      8. Controls.Add (IcButton1)
      9. End Sub

      Und Dann per Klick anderes Icon:

      VB.NET-Quellcode

      1. If IcButton1.IsIt(IcButton.Icons.ErrorIC) Then
      2. IcButton1.SetIt(IcButton.Icons.Information)
      3. ElseIf IcButton1.IsIt(IcButton.Icons.Information) Then
      4. IcButton1.SetIt(IcButton.Icons.NoImage)
      5. ElseIf IcButton1.IsIt(IcButton.Icons.NoImage) Then
      6. IcButton1.SetIt(IcButton.Icons.Shield)
      7. ElseIf IcButton1.IsIt(IcButton.Icons.Shield) Then
      8. IcButton1.SetIt(IcButton.Icons.Warning)
      9. ElseIf IcButton1.IsIt(IcButton.Icons.Warning) Then
      10. IcButton1.SetIt(IcButton.Icons.WinLogo)
      11. ElseIf IcButton1.IsIt(IcButton.Icons.WinLogo) Then
      12. IcButton1.SetIt(IcButton.Icons.ErrorIC)
      13. End If


      Fertig.
      Ihr könnt ihn überall benutzen.
      Bei Einkompilierung in DLL dann Namesnennung!
      Danke!

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()