Umsetzung eines Vorschaufensters für Textbausteine

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Umsetzung eines Vorschaufensters für Textbausteine

    Hallo liebe Leute,

    ich bin ein VB .NET Neuling und finde mich soeben zurecht (mehr oder weniger). Die Birne qualmt und die Augen brennen und Google hat auch schon mal besser funktioniert.
    Ich habe hier ein Thema, das in folgender Form nach meiner Recherche so noch nicht direkt aufgeführt worden ist.
    Also deswegen mein Anliegen an diejenigen, die womöglich bereits Erfahrungen haben:

    Ich habe ein Projekt welches Textbausteine abruft.
    Jetzt aber die Krux: Gibt es eine effiziente/einfache Möglichkeit ein Vorschau-Fenster für ausgewählte Textelemente anzulegen, welche die Formatierung darstellen können?
    Ich habe herum experimentiert mit: RichTextBoxen und PrintPrewiev. Generell leiten einen die Leute gerne zu externer Software. Die letzte Notlösung zu meinem Wissenstand wäre auf Bilder via PictureBox zu zugreifen.
    Also hat da jemand Erfahrungen :/ ?

    Fragen und Einwände die fallen könnten:
    Brauchst du das wirklich? | JA! Ich benötige diese Vorschau.
    Und was kam raus bei deinen Experimenten? | Dass das alles ganz schön aufwendig ist. Ich recherchiere ja gerne, aber im Moment seh in mein Problem vor lauter potentieller Lösungen nicht.... Gebt mir bitte einen Stubs in eine vielversprechende Richtung.
    Hast du versucht das nachzulesen/dich reinzulesen? | Ich habe es versucht: Leider enthält meine Bibliothek(en) kein Buch, welches die richtige Information enthält. Ich werde aber noch weiter suchen.

    Das gesamte Projekt wäre dann potentiell eine Aufgabe, die für meine Thesis zugute kommen würde. Ihr würdet mich sehr glücklich machen, wenn mir jemand den Weg in die richtige Richtung zeigt :love:
    Ich finde deine Beschreibung n bissle vage gegriffen. Vielleicht liegts auch daran, dass ich Vorschaufenster und Textbausteine nur in ihrer abstrakten Bedeutung verstehe.
    Aber da du sagst Pictureboxen wären eine Lösung -> ein Bild mag dann sicher auf die Sprünge helfen.

    Weiters sagst: "ausgewählte". Wie erfolgt die Auswahl bzw. wenn das zum Problem gehört: Wie soll die Auswahl erfolgen?

    Kleine Vermutung: Textbaustein ist bei dir einfach ein bestimmter String? Was ist dann aber mit der Formatierung gemeint?
    Generiere mal bitte ein Sollausgabe per Paint und zeige/erkläre damit, was Du gern hättest.
    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.
    @Eddi_imma_ready Willkommen im Forum. :thumbup:
    Über welche Programmiererfahrung verfügst Du?
    Vielleicht machst Du erst mal ein paar Fingerübungen, um mit der Materie warm zu werden:
    [Sammelthread] Programmieren, aber was? (Programmideen)
    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!
    Danke @RodFromGermany, es haben sich auch schon mehr Leute gemeldet als erwartet, toll :thumbsup:
    Also ich habe gesagt ich bin ein VB .NET Neuling, allerdings habe ich schon andere Sachen gemacht. Mit React, C++ und etwas Java.
    In meiner Freizeit würde ich mich ja eigentlich mich Grafikprogrammierung (OpenGL) beschäftigen, aber bis zum Ende meines Studiums wird das nichts werden.
    Ich würde mich selber als Fortgeschritten bezeichnen, wobei viele streiten würden ich wäre eher Anfänger/Fortgeschritten :D

    Also @siycah, die Möglichkeit hatte ich noch gar nicht im Blick. Jedoch auf den ersten Blick sieht das nach einem Tausch aus: Kontrolle gegen Aufwand.
    Ist aber sicherlich einen Blick Wert! Ich schau da mal etwas in die Sache hinein, danke dir.

    @Haudruferzappeltnoch: Ja es ist definitiv vage. Das muss auch der Grund sein wieso ich bei meiner Recherche auf keinerlei Beispiele gestoßen bin...
    Allerdings bin ich auch nicht auf Nichts gestoßen. Es gibt nämlich kommerzielle Produkte die genau das selbe machen. Bilder sgaen mehr als tausend Worte:


    Das hier ist ein Screenshot des 'texmanager', für diejenigen die es in die Suchmaschine eingeben wollen.
    Korrigiert mich wenn ich das falsch sehe: Links ist eine TreeView wo die Textbausteine zu sehen und auszuwählen sind. Auf dem anderem Tab 'Generator' (gerade nicht aktiv und nicht zu sehen auf diesem Bild) der rechten Fensterhälfte sind Pfeile, die beim Anklicken ausgewählte Bausteine auf der linken Seite in die 'Generator-Liste' geraten und alles was sich in der 'Generator-Liste' befindet ist in der Vorschau zu sehen. Und da ist sie... die herrliche Vorschau :whistling:
    Ich weiß nur, dass so eine Vorschau bereits entwickelt wurde. Ich weiß nur nicht wie. Auch MSWord hat wenn man Bausteine auswählt eine kleine Vorschau (Einfügen > Schnellbausteine Dropdown).
    Ich suche einen Ansatz wie ich so eine Vorschau in etwa selber mache, falls das möglich ist.
    Gestern habe ich meine Zeit damit verbracht Texte und Formate in RichText Boxen zu übertragen, aber RichText ist halt eine anderes Dateiformat und bedarf eben Umwandlungsaufwand.
    Bis ich eine andere Methode habe, schau ich mir mal den PrintPreview einfach mal an und les mir etwas über Controls durch ^^
    Für mich ist der Aufbau von dem, was du zeigst, ein Parent-Child-View.
    Der TreeView (Parent) links hat erst einmal Items bzw. Treenodes. Bei Auswahl eines Items wird dieses rechts im Child detailiert dargestellt.

    Für dich sind diese Items "Textbausteine". Was einen Textbaustein als Textbaustein qualifiziert ist aber immer noch nicht klar.
    Das musst du ggf. in deinem Programm als Klasse modellieren.
    Kommt aber nicht drauf an, zum Start kannst du ja mal einen Treeview mit Strings füllen und eine Textbox den angewählten String anzeigen lassen.

    VB.NET-Quellcode

    1. Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterSelect
    2. TextBox1.Text = e.Node.Text
    3. End Sub
    Mit einer Zeile hast du dieses Verhalten direkt nachgestellt.


    Probier mal bissle rum und dann kannst du uns besser beschreiben was fehlt.
    Für mich ist der "Explorer-ähnliche" Teil erst mal noch Nebensache. "Textbausteine" ist ein Überbegriff für Autotext, Schnellbausteine, Header, Bilder und und und. Hier kann man alle möglichen Enumartionen sehen: learn.microsoft.com/de-de/offi…word.wdbuildingblocktypes. Building Blocks heißt es auf Englisch. Es kann sich ja um einen beliebigen Text handeln.
    Ich kann den Text ja auch direkt einfügen, und im Moment hole ich mir den String aus einer dotx (Vorlagendatei), welches 4 Vorlagen(= was ich als Textbausteine bezeichne) enthält.

    Der Grund: ich brauche den linken Explorer Teil gar nicht, wenn das mit der Vorschau nicht funktioniert.
    Zudem wird das der Teil sein, bei dem ich wenigstens weiß was ich laden will und wie ich es abrufen werde (MySQL-Daten-Bank).
    Mein großes Fragezeichen ist diese Vorschau ?(

    imgur.com/gallery/eddis-formular-lEfZTII

    Erst mal wird mit einem einzigen Knopfdruck der Text geladen den ich will und in das RichTextFeld geschrieben und genau so auch mit dem PrintPreview.
    Ich will als nächstes schauen wie ich die Formate übertragen kann, die eigentlich im meiner Vorlage enthalten sind, bzw. wie ich diese auslese und dann im Nachgang für RichText übertrage.
    Wenn jemand eine bessere Idee hat als diese wäre das super :S
    Und zu der Sache mit dem eigenem Control bin ich noch nicht gekommen.

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

    Also zur Klarstellung, in meinem Verständnis ist der Text in der Textbox in Post 7 die Vorschau.
    Anders gesagt, dann ruf doch einen Datensatz aus MySQL ab und schreib ihn in die Textbox und dann erklär mir was daran keine Vorschau ist.

    Wenn du aber bereits Code hast, poste den ruhig mal, daran kann man bestimmt ein paar Sachen feststellen, die du uns noch nicht erklären konntest.

    (Dein Bildlink kann man nicht anschauen, du kannst Bilder hier direkt im Post hochladen und einfügen, hast du ja auch schon gemacht)

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    Ich sehe Bilder, Text und eine Auflistung. Ich erkläre mal grob was ich machen würde.(Wobei ich das eher mit WPF machen würde, da geht sowas leicht, aber WPF müsstest du mit umgehen können)

    Hier würde ich Generics nutzen. Ein Custom oder UserControl, dazu Klassen für alle Typen, also Text, Listen, Bildchen, die von einer gemeinsamen Basisklasse erben, Im Control dann eine List(Of DeineBasisKlasse), je nachdem ob du selbst rendern willst oder nicht halt Controls dynamisch hinzufügen als alternative. Ich täte einfach von Control erben lassen und selbst malen.

    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

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

    Also siycah hat es bereits erwähnt und @DTFempfiehlt mir (nach meinem Verstehen) das gleiche. Nur genauer.

    Ich habe gestern über genau das in den Microsoft documents gelesen und jetzt wichtige Dinge festgestellt.
    Bei meinem Projekt welches ich zum Erweitern meiner beschriebenen Funktionalität erhalten habe, handelt es sich um eine Windows-Form Anwendung. Für diese sind eben diese Control relevant.
    Ich werde als nächstes entscheiden welche Art von Control ich brauchen werde(learn.microsoft.com/en-us/dotn…rview?view=netdesktop-8.0).
    Ich habe die Aufgabe zwar noch nicht erledigt, aber ich denke ich habe zumindest das Wissen zur Beanwortung meiner Frage.
    Es gibt nämlich keinen einfachen, vorgefertigten Weg. Ich werde es mir selber zusammenbauen müssen und mich mit den Controls den Funktionen und Schnittstellen beschäftigen, die es für meine Version von .NET gibt. Und das in einer obsoleten Sprache: Visual Basic X/

    Danke an alle Denkanstöße!

    Sollte jemand doch noch geheim Tipps haben, wäre das aber natürlich herrlich ;)

    Eddi_imma_ready schrieb:

    Also ich habe gesagt ich bin ein VB .NET Neuling, allerdings habe ich schon andere Sachen gemacht. Mit React, C++ und etwas Java.

    Eddi_imma_ready schrieb:

    Und das in einer obsoleten Sprache: Visual Basic
    Denk doch mal über C# nach.
    Ist von der Syntax ähnlicher dem was du schon gemacht hast.
    Alles was du in VB.Net machen kannst, ist auch in C# möglich.
    Die beiden Sprachen sind eng verwandt (außer syntaktisch) und verwenden beide .Net
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --