vb net Smileys in einem Chat verwenden

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von Thiemo1991.

    vb net Smileys in einem Chat verwenden

    Hallo ihr lieben,

    ich bin gerade dabei den UTicketChat umzubauen - es hat bis jeetzt geklappt - aber nun möchte ich Smileys dazu fügen und daran scheitere ich auch, weil ich auch nicht weis wo ich in was rein tun muss bzw. ob das der richtige und benötigte Code ist.

    VB.NET-Quellcode

    1. If txtChatEingabe.Text.Contains(":-)") Then
    2. Dim smilie As Image = My.Resources.smile
    3. Clipboard.SetImage(smilie)
    4. rtbChatAusgabe.SelectionStart = rtbChatAusgabe.Text.IndexOf(":-)")
    5. rtbChatAusgabe.SelectionLength = 3
    6. rtbChatAusgabe.Paste()
    7. End If


    Ich hoffe dabei auf Hilfe.

    MFG
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    @Thiemo1991 Das ist genau der richtige Code.
    Was genau funktioniert da nicht?
    Wo rufst Du diesen Code auf?
    Teste das ganze in einer Button_Click.
    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!
    @Thiemo1991: Ich hab's mal bei mir probiert und konnte den gewünschten Effekt erst erzielen, als ich Zeile 1 in If rtbChatAusgabe.Text.Contains(":-)") Then geändert habe. OK, ich kenn den Rest des Codes nicht, aber von der Logik her muss doch der RTB-Text geprüft werden, da Du den ja ändern willst, nicht den TextBoxText, oder? Wenn doch, dann müsste der TextBoxText geprüft und geändert werden. Aber TextBoxText prüfen und RTB-Text ändern kommt mir momentan noch komisch vor.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich habe den oben genannten Code nicht mehr da er bei mir gar nichts macht aber wenn ich diesen Code verwende (Code kommt unten) dann stürzt der Chat einfach mit der Fehlermeldung "System.NullReferenceException ist aufgetreten. HResult=0x80004003 Nachricht = Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. Quelle = <Die Ausnahmequelle kann nicht ausgewertet werden.> Stapelüberwachung:
    <Die Ausnahmestapelüberwachung kann nicht ausgewertet werden.>" kommt sobald ich nur ":-" eingebe. Ich verstehe nicht warum es überhaupt so nicht funktioniert.

    Das ist ist nun der komplette Code (dieser Chat ist bzw. war eine Vorlage vom UTicket Chat)

    VB.NET-Quellcode

    1. Imports UniversalTicket
    2. Public Class frmMain
    3. #Region "Funktionen"
    4. Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Integer
    5. Private WithEvents utc As UTicketClient
    6. Private emotions As Hashtable
    7. #End Region
    8. #Region "Verbindung aufbauen/trennen und Controls einblenden sowie ausblenden"
    9. Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    10. guiZustandGetrennt()
    11. verbindungTrennen()
    12. Application.Exit()
    13. End Sub
    14. Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    15. guiZustandGetrennt()
    16. IDvorschalgen()
    17. End Sub
    18. Private Sub guiZustandGetrennt()
    19. rtbChatAusgabe.Text = ""
    20. txtChatEingabe.Text = ""
    21. txtID.Enabled = True
    22. picVerbindungsstatus.BackColor = Color.FromKnownColor(KnownColor.Control)
    23. End Sub
    24. Private Sub guiZustandVerbinungSteht()
    25. picVerbindungsstatus.BackColor = Color.Green
    26. txtChatEingabe.Focus()
    27. End Sub
    28. Private Sub utc_ConnectionLost(sReason As String) Handles utc.ConnectionLost
    29. guiZustandGetrennt()
    30. MsgBox("Verbindung wurde getrennt!" & vbNewLine & vbNewLine & sReason, MsgBoxStyle.Exclamation)
    31. End Sub
    32. Private Sub utc_ConnectionNotPossible(sReason As String) Handles utc.ConnectionNotPossible
    33. guiZustandGetrennt()
    34. MsgBox("Verbindung konnte nicht hergestellt werden!" & vbNewLine & vbNewLine & sReason, MsgBoxStyle.Exclamation)
    35. End Sub
    36. Private Sub verbindungSteht() Handles utc.ConnectionReadyForSending
    37. guiZustandVerbinungSteht()
    38. End Sub
    39. Private Sub guiZustandVerbindungHerstellen()
    40. guiZustandGetrennt()
    41. Application.DoEvents()
    42. End Sub
    43. Private Sub verbindungHerstellen()
    44. utc = New UTicketClient("", 77, "3290fja39j%§(§&_SERVER-PASSWORD_§=JDf9", Me)
    45. 'utc = New UTicketClient("", 77, "3290fja39j%§(§&_SERVER-PASSWORD_§=JDf9", Me)
    46. If utc.isServerAvailable = True Then
    47. utc.start(txtID.Text)
    48. Else
    49. MsgBox("Der Server ist leider gerade offline!", MsgBoxStyle.Exclamation)
    50. guiZustandGetrennt()
    51. End If
    52. End Sub
    53. Private Sub verbindungTrennen()
    54. If utc IsNot Nothing Then
    55. utc.shutdown()
    56. End If
    57. End Sub
    58. Private Sub utc_ServerIsShuttingDown() Handles utc.ServerIsShuttingDown
    59. guiZustandGetrennt()
    60. Me.Close()
    61. End Sub
    62. #End Region
    63. #Region "Benutzer"
    64. Private Sub IDvorschalgen()
    65. Dim sUsernameSplit() As String = Split(My.User.Name, "\")
    66. txtID.Text = sUsernameSplit(UBound(sUsernameSplit))
    67. End Sub
    68. Private Sub utc_IDalreadyInUseConnectionAborted() Handles utc.IDalreadyInUseConnectionAborted
    69. guiZustandGetrennt()
    70. MsgBox("Diese ID ist leider bereits vergeben!", MsgBoxStyle.Exclamation)
    71. End Sub
    72. Private Sub utc_IDisGone(sID As String) Handles utc.IDisGone
    73. rtbChatAusgabe.AppendText("[" & getUhrZeit() & "] " & sID & " hat den Server verlassen!" & vbNewLine)
    74. End Sub
    75. Private Sub utc_IDjoined(sID As String) Handles utc.IDjoined
    76. rtbChatAusgabe.AppendText("[" & getUhrZeit() & "] " & sID & " hat den Server betreten!" & vbNewLine)
    77. End Sub
    78. Private Sub utc_IDlistChanged(sIDs As List(Of String)) Handles utc.IDlistChanged
    79. lbEmpfaenger.Items.Clear()
    80. For Each ID In sIDs
    81. lbEmpfaenger.Items.Add(ID)
    82. Next
    83. lbEmpfaenger.SelectedIndex = lbEmpfaenger.Items.Count - 1
    84. End Sub
    85. #End Region
    86. #Region "Server Passwort"
    87. Private Sub utc_ServerPasswordWrong() Handles utc.ServerPasswordWrong
    88. guiZustandGetrennt()
    89. MsgBox("Serverpasswort ist leider nicht korrekt!", MsgBoxStyle.Exclamation)
    90. End Sub
    91. #End Region
    92. #Region "Empfangen/senden"
    93. Private Sub utc_UTicketArrived1(sSenderID As String, bSentToAll As Boolean, sCommand As String, oUserData As List(Of Object)) Handles utc.UTicketArrived
    94. Select Case sCommand
    95. Case "chat"
    96. rtbChatAusgabe.AppendText("[" & getUhrZeit() & "] " & sSenderID & ": " & oUserData(0).ToString & vbNewLine)
    97. Case "msgbox"
    98. MsgBox(CType(oUserData(0), String), MsgBoxStyle.Information)
    99. End Select
    100. End Sub
    101. Private Sub txtChatEingabe_KeyDown(sender As Object, e As KeyEventArgs) Handles txtChatEingabe.KeyDown
    102. If e.KeyData = Keys.Enter Then
    103. chatAbsenden()
    104. End If
    105. End Sub
    106. Private Function getUhrZeit() As String
    107. Dim sStunde As String = My.Computer.Clock.LocalTime.Hour.ToString
    108. Dim sMinute As String = My.Computer.Clock.LocalTime.Minute.ToString
    109. If sStunde.Length = 1 Then
    110. sStunde = "0" & sStunde
    111. End If
    112. If sMinute.Length = 1 Then
    113. sMinute = "0" & sMinute
    114. End If
    115. Return sStunde & ":" & sMinute
    116. End Function
    117. Private Sub chatAbsenden()
    118. If txtChatEingabe.Text <> "" Then
    119. utc.sendUTicket(lbEmpfaenger.Text, "chat", txtChatEingabe.Text)
    120. txtChatEingabe.Text = ""
    121. End If
    122. End Sub
    123. Private Sub txtID_KeyUp(sender As Object, e As KeyEventArgs) Handles txtID.KeyUp
    124. If txtID.Text = txtID.Text Then
    125. If e.KeyCode = Keys.Enter Then
    126. guiZustandVerbindungHerstellen()
    127. verbindungHerstellen()
    128. End If
    129. End If
    130. End Sub
    131. Private Sub txtChatEingabe_TextChanged(sender As Object, e As EventArgs) Handles txtChatEingabe.TextChanged
    132. If txtChatEingabe.Text = "/Nachricht" Then
    133. Dim sNachricht As String = InputBox("Nachricht?")
    134. If sNachricht <> "" Then
    135. utc.sendUTicket(lbEmpfaenger.Text, "msgbox", sNachricht)
    136. End If
    137. End If
    138. rtbChatAusgabe.ReadOnly = False
    139. AddEmotions()
    140. rtbChatAusgabe.ReadOnly = True
    141. End Sub
    142. #End Region
    143. #Region "Emotions"
    144. Private Sub CreateEmotions()
    145. emotions = New Hashtable(12)
    146. emotions.Add(":)", My.Resources.smile)
    147. emotions.Add(":-)", My.Resources.smile)
    148. 'emotions.Add(":(", My.Resources.sad)
    149. emotions.Add(":*", My.Resources.kiss)
    150. emotions.Add("<3", My.Resources.heart)
    151. emotions.Add(":<3", My.Resources.lovely)
    152. emotions.Add("(Y)", My.Resources.thumbsup)
    153. emotions.Add("(y)", My.Resources.thumbsup)
    154. emotions.Add(">.<", My.Resources.angry)
    155. emotions.Add("-_-", My.Resources.annoyed)
    156. emotions.Add(";-)", My.Resources.eyetwink)
    157. emotions.Add(";)", My.Resources.eyetwink)
    158. emotions.Add(":P", My.Resources.lool)
    159. emotions.Add(":p", My.Resources.lool)
    160. emotions.Add(":O", My.Resources.oh)
    161. emotions.Add(":o", My.Resources.oh)
    162. emotions.Add(":|", My.Resources.suspecious)
    163. emotions.Add(":D", My.Resources.teeth)
    164. emotions.Add(":'(", My.Resources.weep)
    165. emotions.Add(":(con)", My.Resources.confused)
    166. emotions.Add(":(lov)", My.Resources.lovely)
    167. End Sub
    168. Private Sub AddEmotions()
    169. For Each emote As String In emotions.Keys
    170. While rtbChatAusgabe.Text.Contains(emote)
    171. Dim ind As Integer = rtbChatAusgabe.Text.IndexOf(emote)
    172. rtbChatAusgabe.Select(ind, emote.Length)
    173. Clipboard.SetImage(DirectCast(emotions(emote), Image))
    174. rtbChatAusgabe.Paste()
    175. End While
    176. Next
    177. End Sub
    178. #End Region
    179. End Class

    Oder soll ich den Code den ich oben genannt habe am besten nehmen bzw. wie sieht das denn dann aus wenn ich da mehrere Smileys aufrufen sowie hinzufügen möchte?
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de

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

    Thiemo1991 schrieb:

    VB.NET-Quellcode

    1. Private Sub CreateEmotions()
    Ich würde dafür ein Dictionary(Of String, Image) nehmen.
    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!
    @Thiemo1991 Statt einer Hashtable ein Dictionary, da kannst Du Einträge Adden, ohne die Anzahl vorher zu kennen, ansonsten ist die Verwendung äquivalent.
    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!
    Soeben habe das getestet aber bei

    VB.NET-Quellcode

    1. ​For Each emote As String In emotions.Keys
    kommt dann der Fehler "System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."".
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    @Thiemo1991 Welche Variable ist denn da Nothing?
    Tipp: Lerne zu debuggen, gugst Du hier.
    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!
    Mit dem geposteten Code bricht das Programm bei mir schon ab, da die CreateEmotions-Sub überhaupt nicht aufgerufen wird (z.B. sollte das in der Form_Load-Sub geschehen) und somit die Bilder nicht geladen werden. Kein Wunder, dass er dann später bei der For-Schleife zum Durchlaufen der Bilder abbricht.
    btw: Ganz schön viel VisualBasic-Namespace-Zeug drin ...
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Thiemo1991 Im Form_Load lieber nicht, denn da werden vom Framework diverse Exceptions verschluckt und Du bekommst es nicht mit.
    Mach das zunächst in einer Button_Click.
    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!
    @Thiemo1991 Dann poste mal den relevanten Code.
    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. ​Imports UniversalTicket
    2. Public Class frmMain
    3. #Region "Funktionen"
    4. Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Integer
    5. Private WithEvents utc As UTicketClient
    6. Private emotions As Dictionary(Of String, Image)
    7. #End Region
    8. #Region "Speichern/Laden u. Verbindung überprüfen"
    9. Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    10. guiZustandGetrennt()
    11. verbindungTrennen()
    12. Application.Exit()
    13. End Sub
    14. Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    15. guiZustandGetrennt()
    16. IDvorschalgen()
    17. End Sub
    18. Private Sub guiZustandGetrennt()
    19. rtbChatAusgabe.Text = ""
    20. txtChatEingabe.Text = ""
    21. txtID.Enabled = True
    22. picVerbindungsstatus.BackColor = Color.FromKnownColor(KnownColor.Control)
    23. End Sub
    24. Private Sub guiZustandVerbinungSteht()
    25. picVerbindungsstatus.BackColor = Color.Green
    26. txtChatEingabe.Focus()
    27. End Sub
    28. Private Sub utc_ConnectionLost(sReason As String) Handles utc.ConnectionLost
    29. guiZustandGetrennt()
    30. MsgBox("Verbindung wurde getrennt!" & vbNewLine & vbNewLine & sReason, MsgBoxStyle.Exclamation)
    31. End Sub
    32. Private Sub utc_ConnectionNotPossible(sReason As String) Handles utc.ConnectionNotPossible
    33. guiZustandGetrennt()
    34. MsgBox("Verbindung konnte nicht hergestellt werden!" & vbNewLine & vbNewLine & sReason, MsgBoxStyle.Exclamation)
    35. End Sub
    36. Private Sub verbindungSteht() Handles utc.ConnectionReadyForSending
    37. guiZustandVerbinungSteht()
    38. End Sub
    39. Private Sub guiZustandVerbindungHerstellen()
    40. guiZustandGetrennt()
    41. Application.DoEvents()
    42. End Sub
    43. Private Sub verbindungHerstellen()
    44. utc = New UTicketClient("", 77, "3290fja39j%§(§&_SERVER-PASSWORD_§=JDf9", Me)
    45. 'utc = New UTicketClient("", 77, "3290fja39j%§(§&_SERVER-PASSWORD_§=JDf9", Me)
    46. If utc.isServerAvailable = True Then
    47. utc.start(txtID.Text)
    48. Else
    49. MsgBox("Der Server ist leider gerade offline!", MsgBoxStyle.Exclamation)
    50. guiZustandGetrennt()
    51. End If
    52. End Sub
    53. Private Sub verbindungTrennen()
    54. If utc IsNot Nothing Then
    55. utc.shutdown()
    56. End If
    57. End Sub
    58. Private Sub utc_ServerIsShuttingDown() Handles utc.ServerIsShuttingDown
    59. guiZustandGetrennt()
    60. Me.Close()
    61. End Sub
    62. #End Region
    63. #Region "Benutzer"
    64. Private Sub IDvorschalgen()
    65. Dim sUsernameSplit() As String = Split(My.User.Name, "\")
    66. txtID.Text = sUsernameSplit(UBound(sUsernameSplit))
    67. End Sub
    68. Private Sub utc_IDalreadyInUseConnectionAborted() Handles utc.IDalreadyInUseConnectionAborted
    69. guiZustandGetrennt()
    70. MsgBox("Diese ID ist leider bereits vergeben!", MsgBoxStyle.Exclamation)
    71. End Sub
    72. Private Sub utc_IDisGone(sID As String) Handles utc.IDisGone
    73. rtbChatAusgabe.AppendText("[" & getUhrZeit() & "] " & sID & " hat den Server verlassen!" & vbNewLine)
    74. End Sub
    75. Private Sub utc_IDjoined(sID As String) Handles utc.IDjoined
    76. rtbChatAusgabe.AppendText("[" & getUhrZeit() & "] " & sID & " hat den Server betreten!" & vbNewLine)
    77. End Sub
    78. Private Sub utc_IDlistChanged(sIDs As List(Of String)) Handles utc.IDlistChanged
    79. lbEmpfaenger.Items.Clear()
    80. For Each ID In sIDs
    81. lbEmpfaenger.Items.Add(ID)
    82. Next
    83. lbEmpfaenger.SelectedIndex = lbEmpfaenger.Items.Count - 1
    84. End Sub
    85. #End Region
    86. #Region "Server Passwort"
    87. Private Sub utc_ServerPasswordWrong() Handles utc.ServerPasswordWrong
    88. guiZustandGetrennt()
    89. MsgBox("Serverpasswort ist leider nicht korrekt!", MsgBoxStyle.Exclamation)
    90. End Sub
    91. #End Region
    92. #Region "Empfangen/senden"
    93. Private Sub utc_UTicketArrived1(sSenderID As String, bSentToAll As Boolean, sCommand As String, oUserData As List(Of Object)) Handles utc.UTicketArrived
    94. Select Case sCommand
    95. Case "chat"
    96. rtbChatAusgabe.AppendText("[" & getUhrZeit() & "] " & sSenderID & ": " & oUserData(0).ToString & vbNewLine)
    97. Case "msgbox"
    98. MsgBox(CType(oUserData(0), String), MsgBoxStyle.Information)
    99. End Select
    100. End Sub
    101. Private Sub txtChatEingabe_KeyDown(sender As Object, e As KeyEventArgs) Handles txtChatEingabe.KeyDown
    102. If e.KeyData = Keys.Enter Then
    103. chatAbsenden()
    104. End If
    105. End Sub
    106. Private Function getUhrZeit() As String
    107. Dim sStunde As String = My.Computer.Clock.LocalTime.Hour.ToString
    108. Dim sMinute As String = My.Computer.Clock.LocalTime.Minute.ToString
    109. If sStunde.Length = 1 Then
    110. sStunde = "0" & sStunde
    111. End If
    112. If sMinute.Length = 1 Then
    113. sMinute = "0" & sMinute
    114. End If
    115. Return sStunde & ":" & sMinute
    116. End Function
    117. Private Sub chatAbsenden()
    118. If txtChatEingabe.Text <> "" Then
    119. utc.sendUTicket(lbEmpfaenger.Text, "chat", txtChatEingabe.Text)
    120. txtChatEingabe.Text = ""
    121. End If
    122. End Sub
    123. Private Sub txtID_KeyUp(sender As Object, e As KeyEventArgs) Handles txtID.KeyUp
    124. If txtID.Text = txtID.Text Then
    125. If e.KeyCode = Keys.Enter Then
    126. guiZustandVerbindungHerstellen()
    127. verbindungHerstellen()
    128. End If
    129. End If
    130. End Sub
    131. Private Sub txtChatEingabe_TextChanged(sender As Object, e As EventArgs) Handles txtChatEingabe.TextChanged
    132. If txtChatEingabe.Text = "/Nachricht" Then
    133. Dim sNachricht As String = InputBox("Nachricht?")
    134. If sNachricht <> "" Then
    135. utc.sendUTicket(lbEmpfaenger.Text, "msgbox", sNachricht)
    136. End If
    137. End If
    138. End Sub
    139. #End Region
    140. #Region "Emotions"
    141. Private Sub CreateEmotions()
    142. emotions.Add(":)", My.Resources.smile)
    143. emotions.Add(":-)", My.Resources.smile)
    144. 'emotions.Add(":(", My.Resources.sad)
    145. emotions.Add(":*", My.Resources.kiss)
    146. emotions.Add("<3", My.Resources.heart)
    147. emotions.Add(":<3", My.Resources.lovely)
    148. emotions.Add("(Y)", My.Resources.thumbsup)
    149. emotions.Add("(y)", My.Resources.thumbsup)
    150. emotions.Add(">.<", My.Resources.angry)
    151. emotions.Add("-_-", My.Resources.annoyed)
    152. emotions.Add(";-)", My.Resources.eyetwink)
    153. emotions.Add(";)", My.Resources.eyetwink)
    154. emotions.Add(":P", My.Resources.lool)
    155. emotions.Add(":p", My.Resources.lool)
    156. emotions.Add(":O", My.Resources.oh)
    157. emotions.Add(":o", My.Resources.oh)
    158. emotions.Add(":|", My.Resources.suspecious)
    159. emotions.Add(":D", My.Resources.teeth)
    160. emotions.Add(":'(", My.Resources.weep)
    161. emotions.Add(":(con)", My.Resources.confused)
    162. emotions.Add(":(lov)", My.Resources.lovely)
    163. End Sub
    164. Private Sub AddEmotions()
    165. For Each emote As String In emotions.Keys
    166. While rtbChatAusgabe.Text.Contains(emote)
    167. Dim ind As Integer = rtbChatAusgabe.Text.IndexOf(emote)
    168. rtbChatAusgabe.Select(ind, emote.Length)
    169. Clipboard.SetImage(DirectCast(emotions(emote), Image))
    170. rtbChatAusgabe.Paste()
    171. End While
    172. Next
    173. End Sub
    174. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    175. Call AddEmotions()
    176. End Sub
    177. #End Region
    178. End Class
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Du hast in Deinem Button1_Click AddEmotions drin. Wie gesagt, Dir fehlt immer noch der Aufruf von CreateEmotions.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich habe mir überlegt das mit den Smileys sowie das einfärben von Text über ein Webbrowser zu machen. Ist das sinnvoll bzw. auch mit dem GeckoWebbrowser machbar, weil ich das Webbrowser Control von Microsoft meiden möchte? Ich denke schon dass das auch mit dem Webbrowser von Mozilla funktioniert.
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    @Thiemo1991 Statt getUhrZeit() machst Du DateTime.Now.ToString("HH:mm").
    ====
    Und:
    Wenn Du Deine gefühlten 1000 Zeilen Quellcode in einen
    spoiler
    spoiler
    packst, lässt sich Dein Post besser überblicken.
    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!