| |
VB.NET - Ein- und UmsteigerRe: Text in RichTextBox formatieren: Bullet und Tabs | | | Autor: Manfred X | Datum: 22.07.16 07:31 |
| 1. Die Richtextbox hat die Standardtabs geerbt (TextboxBase).
2. Würde ich meinen.
3. Das hängt davon ab, ob die RTB Tabs akzeptiert (Eigenschaft).
In dem Fall wird der Tabulator als \Tab-Format notiert (ohne auf
eine explizite Längenangabe zurückzugreifen).
4. Tabschrittweiten können z.B. auch über "Sendmessage" (EM_SETTABSTOPS)
eingerichtet werden. Solche Tabschrittweiten werden als \txLänge notiert.
5.1. Die "Selectiontabs"-Eigenschaft setzt/liefert ein Array von Tabweiten,
falls (für den Abschnitt) \txLänge-Angaben vorliegen.
Schrittweiten-Änderungen sind immer im Array vorzunehmen,
nicht in der RTF-Eigenschaft selbst.
RTF unterstützt Tab-Ausrichtungen, das Control bietet im Dialog diese
Einstellungen meines Wissens nicht.
5.3./6.3 ???
Wie bei RTF allgemein üblich, werden auch die Codes zu Tablängen
innerhalb von Format-Klammern hierarchisch verwaltet.
Ein Textabschnitt wird immer gemäß dem nächstliegenden Code dargestellt.
Beitrag wurde zuletzt am 22.07.16 um 07:32:45 editiert. | |
Text in RichTextBox formatieren: Bullet und Tabs | | | Autor: spatzimatzi | Datum: 21.07.16 16:39 |
| Hallo,
habe RichTextBox-Objekte, bei den der Text formatiert werden soll.
In Teilbereichen ist mir dies bei Bullets und den Tabs gelungen.
Bullet
Das Setzen der Bullet ist mir gelungen. Trotzdem bleiben einige Fragen, die ich gerne beantwortet hätte:
Als Standard gibt das System einen kleinen schwarzen Punkt aus!
1. Gibt es auch andere Formen, die man ansprechen kann
2. Wenn ja, wie werden diese angesprochen
Tabs
Bei den Tabs habe ich anscheinend die Funktionsweise noch nicht richtig verstanden.
Deshalb möchte ich kurz erläutern, was ich getestet habe.
Im Array RichTextBox.SelectionTabs werden die einzelnen Tabs als Pointwerte (Integer) abgelegt
Ist das Array leer, kann man trotzdem Tabs nach einem hinterlegten Muster anspringen.
1. Warum hat die RichTextBox ein solches Tabs-Muster?
2. Woher stammen diese Angaben? Ist dies automatisch Standard?
3. Werden diese Angabe immer verwendet, wenn das Array leer ist?
4. Kann man eigene Standard-Tabs setzen? Nach dem Motto: Setzen Tabs alle 50 Punkte
Ist RichTextBox.SelectionTabs leer, dann kann man unter anderem wie folgt die Tabs setzen
RichTextBox.SelectAll()
RichTextBox.SelectionsTabs = New Integer() {100, 200, 300} Dies habe ich ausprobiert. Es funktioniert.
Nach den vorgegebenen Tabs folgen dann die Standard-Tabs
Danach wollte ich den 2. Tab ändern
RichTextBox.SelectAll()
RichTextBox.SelectionsTabs(1) = 220 Dies hat leider nicht geklappt
Meine Frage dazu:
1. Müssen für eine Änderung immer alle gesetzten Tabs gelöscht und komplett neu angelegt werden
2. Was mache ich falsch?
In Textverarbeitungssystemen werden unterschiedliche Tabs vergeben wie:
- Linksbündig
- Rechtsbündig
- Mittig
- Dezimalzahlen
1. Kann man in der RichTextBox auch entsprechede Tabs setzen?
2. Wenn ja, wie werden diese gesetzt?
3. Gelten die Tabs in einer RTB immer für den kompletten Text oder auch Abschnittsweise
Würde mich freuen, wenn man mir Informationen zukommen lassen könnte.
Habe auch schon im Internet gesucht, aber auf meine Fragen keine Antworten gefunden.
Viele Grüße
spatzimatzi | |
Re: Text in RichTextBox formatieren: Bullet und Tabs | | | Autor: Manfred X | Datum: 21.07.16 21:35 |
| Hallo!
Lade Dir die aktuellen Rich-Text-Format-Specs herunter
(bei Microsoft oder sonstwo).
Das RichText-Control unterstützt allerdings nur eine
begrenzte Auswahl dieser Möglichkeiten.
Was nicht in der MSDN steht, kannst Du selbst durch
Probieren herausfinden. | |
Re: Text in RichTextBox formatieren: Bullet und Tabs | | | Autor: spatzimatzi | Datum: 23.07.16 11:12 |
| Hallo Manfred X,
habe im Internet versucht, zusätzliche Information zum Formatieren von Texten in einer RichTextBox zu erhalten.
Dabei ist mir aufgefallen, dass zwar Spezifikationen angeboten werden, aber zu verwertende Beispiele sehr rar sind.
Literatur in Form von Sachbüchern/wissenschaftlichen Abhandlungen scheint es überhaupt nicht zu geben.
Jetzt bleibt mir scheinbar nur noch, selber Hand anzulegen und zu testen.
Bevor ich jedoch testen kann, habe ich noch einige Fragen:
1.
Warum wird das Thema "RichTextBoxen und Formatierung" so stiefmütterlich behandelt. Keine Literatur
2.
Gibt es auf dem freien Markt entsprechende extended Controls, die ein einfaches Formatieren ermöglichen?
3.
Um bestimmte Formatierungen zu erhalten, müssen entsprechende Markup's gesetzt werden.
Nehmen wir folgendes Beispiel: Eine Nummerierung mit Kleinbuchstaben
\pnlcltr --- Lowercase alphabetic numbering (a, b, c).
Wenn ich es jetzt richtig verstanden habe, dann muss an der Stelle, an der die Nummerierung beginnen soll, die Kennung /pnlcltr eingefügt werden. Und nach der letzten Nummerierung muss das Ende eingestellt werden.
Frage: Wie wird dies praktisch gehandhabt. Kann mir jemand eine Erklärung bieten. Am besten an Hand eines Beispieles
Eine Bitte
Da ich gerne Tabs setzen und verändern würde und nicht verstanden habe was Du meinst, muss ich auf Deine Aussagen nochmals zurückkommen.
Du schreibst unter 5.1, dass die Schrittweitenänderung immer im Array selbst vorzunehmen sind und nicht in den Eigenschaften des RTF.
Könntest Du mir dies an einem Beispiel erläutern.
Über Informationen würde ich mich riesig freuen
spatzimatzi | |
Re: Text in RichTextBox formatieren: Bullet und Tabs | | | Autor: Manfred X | Datum: 23.07.16 13:37 |
| Die Windows.Forms.Richtextbox ist eine Erweiterung der
einfachen Textbox und bietet einige RTF-Möglichkeiten
zur Gestaltung von Textabschnitten (Font, Farbe, Einzug, ...).
Dieses Control ist aber kein Textverarbeitungssystem.
Für die Nutzung der begrenzten Möglichkeiten gibt es
massenhaft Beispiele im Internet !!
Für alles weitere gibt es z.b. MS-WORD.
Dein TabStop-Problem kann ich nicht nachvollziehen.
Prinzipiell selektiert man einen Textabschnitt
(Selectionstart, Selectionlength) und weist die
gewünschte Formatierung zu (Selectionfont, ...color, ...tabs, ...).
Das Control setzt für diesen Abschnitt Code-Klammern und
fügt die entsprechenden RTF-Codes ein.
Hier ein Beispiel für das Neusetzen von Tab-Weiten
in einem Abschnitt.
With RichTextBox1
.AcceptsTab = True
'Einen Text mit Tabulatoren zuweisen
.Rtf = _
"{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0" & _
"Microsoft Sans Serif;}}" & _
" \viewkind4\uc1\pard\f0\fs17 " & _
"Breakfast\tab Lunch\tab Dinner\par " & vbNewLine & _
"Coffee\tab Soda\tab Wine\par " & vbNewLine & _
"Sandwich\tab Salat\tab Burger\par}"
'Ganzen Text auswählen
.SelectAll()
'Tabulatorweite eintragen
.SelectionTabs = New Integer() {80, 160, 240}
'Zweite Zeile markieren (nullbasierter Index)
.SelectionStart = .GetFirstCharIndexFromLine(1)
.SelectionLength = .GetFirstCharIndexFromLine(2) - .SelectionStart
'Für diese Zeile neue Tabweite setzen
.SelectionTabs = New Integer() {160, 240, 320}
End With | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|