Ungleichmäßiger Zeilenabstand in RichTextBox

Hallo zusammen,

für einen Chat Client habe ich eine RichTextBox, wo wahlweise entweder Text oder kleine Grafiken eingefügt werden, und zwar immer unten unter den bestehenden Text. Ist die Box voll, wird per Scrollbalken gescrollt. Nun wird nach jeder Textnachricht ein Zeilenumbruch gemacht. Somit habe ich auch immer exakt 1 Zeile Abstand zum unteren Rand der Box.

Das merkwürdige: Wenn ich jetzt zb einen Smiley (also eine Grafik) einfüge, ändert sich der Abstand der untersten Zeile. Solange ich nur Text einfüge, bleibt der Abstand gleich.

Bilder sagen mehr als 1000 Worte, deshalb sagt ein Blick auf meinen Screenshot eigentlich alles aus: http://www.wollny-online.eu/stuff/abstand.jpg

Sobald ich mit der Maus den Scrollbalken betätige, stimmt der Abstand unten wieder. Ich habe versucht, das automatisch zu simulieren, hat aber nicht geklappt.

Vielleicht weiß ja jemand, woran es liegen könnte? Danke schonmal!
Lars

Hallo Lars,

Vielleicht weiß ja jemand, woran es liegen könnte?

nein, keine Idee … Aber eine Idee, was Du mal versuchen kannst um das Problem zu beheben. Du schreibst ja, Du hast schon versucht, ein scrolling zu simulieren, weil nach dem scrollen alles OK ist.

Hast Du schon mal einen DeineRichTextBox.Refresh versucht? Ich habe keine Ahnung ob’s hilft, aber einen Versuch ist’s IMHO wert.

Gruß, Rainer

Hey Rainer,

Hast Du schon mal einen DeineRichTextBox.Refresh versucht? Ich
habe keine Ahnung ob’s hilft, aber einen Versuch ist’s IMHO
wert.

gute Idee, das hatte ich noch nicht probiert. Hat aber leider auch nichts gebracht. Merkwürdige Geschichte… trotzdem Danke. :smile:

Gruß
Lars

Hallo Lars,

Das merkwürdige: Wenn ich jetzt zb einen Smiley (also eine
Grafik) einfüge, ändert sich der Abstand der untersten Zeile.
Solange ich nur Text einfüge, bleibt der Abstand gleich.

Bilder sagen mehr als 1000 Worte, deshalb sagt ein Blick auf
meinen Screenshot eigentlich alles aus:
http://www.wollny-online.eu/stuff/abstand.jpg

Sobald ich mit der Maus den Scrollbalken betätige, stimmt der
Abstand unten wieder. Ich habe versucht, das automatisch zu
simulieren, hat aber nicht geklappt.

Vielleicht weiß ja jemand, woran es liegen könnte? Danke
schonmal!

Grundsätzlich liegt das Problem darin, dass die Zeilen mit Smiley höher sind, als jene welche nur Text enthalten.

Wenn du nur weitere Zeilen hinzufügst, wird die Textbox nur die letzte Zeile bewerten und daraus die Grösse für die unterste Leerzeile berechnen. Möglicherweise verrechnet sie sich dabei etwas.

Es sieht so aus als wenn da
X = + + ( - ) gerechnet wird.
Möglicherweise noch:
If (X > (2 * ) Then X =

Wenn du scrollst wird wohl die tatsächliche Zeilenhöhe verwendet, da sowieso alles neu aufgebaut werden muss.

MfG Peter(TOO)