TextWidth: Irgendwas läuft hier schief

03/03/2011 - 11:01 von Hermie | Report spam
Hi!

Ich mache meine CheckBoxen automatisch so groß, dass sie genau so groß
sind wie der Text. Aber irgendwas làuft bei einem Benutzer von mir
schief, die berechnete Größe ist zu klein, und der Text wird
abgeschnitten. Ich konnte das Problem bisher noch nicht reproduzieren.
Sieht jemand meinen Fehler?

Public Sub CheckBoxSetProperWidth(ByVal uCheckBox As CheckBox)

'240 werden hinzugefügt, weil das CheckBox-Icon meines Wissens nach
maximal 240 Pixel groß sein kann und der Textbreite ja hinzugefügt
werden muss, um die korrekte Breite des Control zu berechnen

Dim lWidth&

With uCheckBox

If TypeName(.Container) = "PictureBox" Then
If .Container.ScaleMode <> vbPixels Then
MsgBox uCheckBox.Name & " should be in a picturebox
that has pixels!!"
End If
End If

If TypeName(.Container) <> "Frame" Then
lWidth = uCheckBox.Parent.TextWidth(.Caption) + (240 \
Screen.TwipsPerPixelX)
Else
lWidth = .Parent.TextWidth(.Caption)
lWidth = (lWidth * Screen.TwipsPerPixelX) + 240
End If

.Width = lWidth
End With

End Sub
 

Lesen sie die antworten

#1 G.Wietzorek
03/03/2011 - 12:35 | Warnen spam
On Thu, 03 Mar 2011 11:01:08 +0100, Hermie wrote:

Hi!

Ich mache meine CheckBoxen automatisch so groß, dass sie genau so groß
sind wie der Text. Aber irgendwas làuft bei einem Benutzer von mir
schief, die berechnete Größe ist zu klein, und der Text wird
abgeschnitten. Ich konnte das Problem bisher noch nicht reproduzieren.
Sieht jemand meinen Fehler?




Die Art der Berechnung lass ich jetzt mal aussen vor ;-)...

Frag den User mal, ob er eine selbstdefinierte Schriftgröße eingestellt hat,
also nicht Standard oder "Große Schriftarten", sondern einen Zwischenwert. Bei
einem bestimmten Grafikkartentreiber (weiß leider nicht mehr welcher es war)
hatte ich dann genau das gleiche Problem, dass derartige Berechnungen nicht
korrekt funktionierten.



Gert Wietzorek

Wer A sagt, der muß nicht B sagen.
Er kann auch erkennen, daß A falsch war.
-Bertolt Brecht-

Ähnliche fragen