Re: Checkbox-Weite automatisch setzen
- From: "Peter Götz" <gssg_nospam@xxxxxxxxxxx>
- Date: Fri, 13 Jul 2007 09:43:26 +0200
Hallo Richard,
Ich möchte die Weite einer Checkbox mit Beschriftung
automatisch auf die richtigen Maße setzen, so wie ein
Label mit Autosize arbeitet. Nun habe ich aber doch
Probleme, und ich sehe nicht ganz, woran es hängt.
Auf meinem Computer geht es gut, aber ich habe
eben auf einem anderen Computer gesehen, dass
es nicht genau hinhaut und meine Checkbox
zweizeilig wird. Ich wüsste gerne, woran es liegt.
Meine Prodzedur dafür lautet:
Public Sub SetProperCheckBoxWidth
(ByVal uCheckBox As CheckBox)
uCheckBox.Width =
uCheckBox.Parent.TextWidth(.Caption) + 240
Was ist Parent.Font?
Was ist CheckBox.Font?
Ein Form.TextWidth("Text") liefert die Textbreite
für den akt. bei der Form eingestellten Font.
Hast Du das irgendwo berücksichtigt?
End Sub
.... schnipp...
Hier mal ein Beispiel das jede Sekunde die
Beschriftung der Checkbox ändert.
' /// Code in einer leeren Form1
Option Explicit
Private WithEvents Timer1 As Timer
Private WithEvents CheckBox1 As CheckBox
Private Label1 As Label
Private mCounter As Integer
Private Sub Form_Load()
Me.ScaleMode = vbPixels
Dim Fnt As New StdFont
With Fnt
.Name = "Arial"
.Size = 10
End With
Set Me.Font = Fnt
Set CheckBox1 = _
Me.Controls.Add("VB.CheckBox", "CheckBox1")
With CheckBox1
.Move 10, 10, 90, 30
.Caption = .Name
Set .Font = Fnt
.Visible = True
End With
Set Timer1 = _
Me.Controls.Add("VB.Timer", "Timer1")
With Timer1
.Interval = 1000
.Enabled = True
End With
End Sub
Private Sub CheckboxSetText(NewText As String)
CheckBox1.Width = Me.TextWidth(NewText) + 20
CheckBox1.Caption = NewText
' rechte Begrenzung der Checkbox markieren.
Me.Cls
Me.CurrentX = CheckBox1.Left + CheckBox1.Width + 1
Me.CurrentY = CheckBox1.Top + 7
Me.Print Chr$(60)
End Sub
Private Sub Timer1_Timer()
mCounter = mCounter + 1
Me.Caption = CStr(mCounter)
CheckboxSetText MonthName(mCounter)
If mCounter = 12 Then
mCounter = 0
End If
End Sub
' \\\ E N T E
Sowohl für die Form (den Parent der Checkbox)
als auch für die Checkbox selbst muss im Moment
der Messung der Textbreite (Form.TextWidth(X))
die selbe Einstellung für Font gelten.
Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)
.
- Follow-Ups:
- Re: Checkbox-Weite automatisch setzen
- From: Richard Steigershausen
- Re: Checkbox-Weite automatisch setzen
- References:
- Checkbox-Weite automatisch setzen
- From: Richard Steigershausen
- Checkbox-Weite automatisch setzen
- Prev by Date: Re: TAPI - Anrufernummer
- Next by Date: Re: Checkbox-Weite automatisch setzen
- Previous by thread: Checkbox-Weite automatisch setzen
- Next by thread: Re: Checkbox-Weite automatisch setzen
- Index(es):
Relevant Pages
|