RichTextBox anklickbarer inhalt

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

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Sekki.

    RichTextBox anklickbarer inhalt

    Heyho,

    ich bin momentan viel am programmieren und bin nun auf das nächste problem gestoßen:
    ich habe eine RTB in der jewails ein benutzer Bild und dessen Name steht. Ich möchte dass wenn man auf dass Bild oder den Namen klickt etwas ausgeführt wird und ich den namen als STring erhalt. Danke für jede antwort! <3

    Im anhand ist zu sehen wie die RTB aufgebaut ist!

    (Die rtb beinhaltet nur die Bilder und jewails unten drunter den Namen!)

    *rtb = Rich Text Box :thumbsup:
    Bilder
    • DasIstDieRTB.PNG

      13,57 kB, 682×366, 230 mal angesehen
    Ja mir erscheint das auch eher als Workaround. Nimmste nen DataGrid oder baust dir nen eigenes Control was aus Bild und Text besteht und packst das in einen FlowLayoutContainer... Ne RTB ist ja eher auf Textverarbeitung als auf Datenhaltung in dieser Form ausgelegt.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo Ich versuch es mal...

    Edit:

    also ich hab jetzt mal ein wenig herum probiert und bin zum entschluss gekommen dass ich diesen workaround jetzt noch zu ende mache und nächste Pversion das ändere. Sonst würde sich der release um bis zu eine woche verspäten... :(

    Ich hab jetzt mal ein wenig herum gegoogelt...

    Mein ergebnis:

    Ist es möglich das irgendwie per xml zu machen also als beispiel:

    XML-Quellcode

    1. <user xlink:type="simple" xlink:href="spielearena">spielearena</user>


    Und das ganze per VB abzufangen also:

    VB.NET-Quellcode

    1. Private Sub RichTextBox2_LinkClicked(sender As Object, e As LinkClickedEventArgs) Handles RichTextBox2.LinkClicked
    2. End Sub


    jetzt ist nur gefragt wie ich dass in die textbox reinbekomme... ?(

    So habe ich bis jetzt die texte in die box gemacht:

    VB.NET-Quellcode

    1. Clipboard.SetText("Benutzername")
    2. RichTextBox2.Paste()


    Denn wenn ich

    VB.NET-Quellcode

    1. RichTextBox2.text = RichTextBox2.text + "Benutzername"
    mache verschwinden die Bilder... :(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SpieleArenaORG“ ()

    @SpieleArenaORG ja das Problem kenn ich zu gut ^^

    Habe mir stundenlang die Finger wund gegoogeld, leider ohne brauchbares Ergebnis.
    Nach einigen Stunden experimentieren hab ich jedoch die Lösung gefunden.
    Versuchs mal so....

    VB.NET-Quellcode

    1. Sub AddRichTxt(ByVal strString As String)
    2. RichTextBox1.SelectionStart = Len(RichTextBox1.Text)
    3. RichTextBox1.SelectedText = strString
    4. End Sub
    5. Sub AddRichBmp(ByVal srcBitmap As Bitmap)
    6. Dim tmpBmp As Bitmap = New Bitmap(srcBitmap)
    7. Clipboard.SetImage(tmpBmp)
    8. RichTextBox1.SelectionStart = Len(RichTextBox1.Text)
    9. RichTextBox1.Paste()
    10. End Sub
    Das Chaos beginnt mit komprimierter Ordnung (Steppenpferd 2019)
    @SpieleArenaORG 2 Beispiele...

    VB.NET-Quellcode

    1. Sub reader()
    2. Dim myStreamreader As New System.IO.StreamReader("c:\my.xml")
    3. Dim tmpStr As String = myStreamreader.ReadToEnd()
    4. AddRichTxt(tmpStr)
    5. End Sub
    6. Sub reader(ByVal strFilename As String)
    7. Dim myStreamreader As New System.IO.StreamReader(strFilename)
    8. Dim tmpStr As String = myStreamreader.ReadToEnd()
    9. AddRichTxt(tmpStr)
    10. End Sub
    Das Chaos beginnt mit komprimierter Ordnung (Steppenpferd 2019)
    @Fakiz 700 Posts im Forum und Du empfiehlst ein ListView :?: :S
    @SpieleArenaORG Wenn das Bild in Post #1 Dein ganzes Problem beschreibt, ist der Rat von @mrMo der richtige, nimm ein FlowLayoutPanel und mach Dir ein UserControl mit Bild und Text.
    Feddich.
    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!
    Sonst würde sich der release um bis zu eine woche verspäten...
    Neee, komm jetzt mach es halt gleich richtig. Mein Vorschlag mit dem FlowLayoutPanel ist super simpel umzusetzen. Hört sich nur kompliziert an, isses aber nicht.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hab mal nen schnelles Testprojekt erstellt, dass dir die Handhabung mit dem BenutzerControl und dem FlowLayoutPanel zeigen soll.

    Hab den Code mal eben runter geschrieben, geht nur ums Prinzip.
    Dateien
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo Thx ok du hast recht... :rolleyes:
    Als ich es heute nacht in vb ausprobiert hab sa das relativ kompliziert aus und da der code für den rest ja schon fertig war wollte ich es nicht umschmeißen aber egal ich machs dann mal nach deiner art ;)
    @SpieleArenaORG
    Benutze keinen "+" Operator um Strings zu verbinden oder sie in Controls anzuheften. Dafür gibt es den "&" Operator. Nutze "+" nur zur Addition(5 + 5 = 10).

    Zudem kannst du auch sowas hier machen:

    VB.NET-Quellcode

    1. RichTextBox1.text &= "Benutzername"

    oder

    VB.NET-Quellcode

    1. RichTextBox1.text &= vbCrLf & "Benutzername"


    Wenn du nämlich z.B ein Integer mit einem String verbinden willst und den Operator "+" nutzt, kann es auch in Zukunft zu Problemen führen(meines Wissens, Erfahrungen), die du so direkt verhindern kannst.
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.
    @Sekki: Da gab's schonmal einen Thread. Ich such den ggf. mal raus. & und + können bei Strings in VB.Net äquivalent zum Verknüpfen verwendet werden.

    Sekki schrieb:

    Wenn du nämlich z.B ein Integer mit einem String verbinden willst
    dann meckert entweder der Compiler zur Entwurfszeit. Oder man hat Option Strict Off, was (fast) immer ein no go ist.
    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.

    VaporiZed schrieb:

    Oder man hat Option Strict Off, was (fast) immer ein no go ist.


    Viele Einsteiger nutzen diese Option nicht, oft, weil sie diese nicht finden oder noch nie davon gehört haben. Danke für die Erweiterung. Ich bin mir sicher, dass solche Kleinigkeiten angesprochen werden müssen, sowas hilft mir auch oft.
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.