Label und Button Text dynamisch ändern

20/05/2010 - 09:56 von Michael H. Bosch | Report spam
Hallo,

ich wage mich kaum, diese Frage zu stellen, aber ich habe ein Problem
zur Laufzeit bei einen Label oder Button den Text zu àndern. Ich weise
der Eigenschaft .text einen neuen Text zu, dieser wird auch übernommen
(zB EVENT wird ausgelöst) aber auf der FORM nicht übernommen.

Ich habe schon me.refresh()
button.refresh() oder button.update probiert und dies auch mit einem
application.doevents abgeschlossen.

Aber es àndert sich nicht auf der FORM. Was mache ich falsch?

VG,

Michael H. Bosch
 

Lesen sie die antworten

#1 Peter Götz
20/05/2010 - 11:58 | Warnen spam
Hallo Michael,

ich wage mich kaum, diese Frage zu stellen, aber ich
habe ein Problem zur Laufzeit bei einen Label oder
Button den Text zu àndern. Ich weise der Eigenschaft
.text einen neuen Text zu, dieser wird auch übernommen
(zB EVENT wird ausgelöst) aber auf der FORM nicht
übernommen.



"Nicht übernommen" heisst vermutlich wird nicht
angezeigt oder nicht sofort angezeigt?


Ich habe schon me.refresh()
button.refresh() oder button.update probiert und dies
auch mit einem application.doevents abgeschlossen.

Aber es àndert sich nicht auf der FORM. Was mache
ich falsch?



Kann man so nicht sagen, dazu müsste man den
relevanten Code kennen, mit dem Du deine .Text-
Eigenschaften ànderst.

Grundsàtzlich sollte es kein Problem sein die
Texteigenschaft irgendwelcher Controls zur
Laufzeit zu àndern. Im folgenden Beispiel geschieht
dies mit Label1.Text und Button1. Text

' /// Code in einem leeren Formmodul (Form1.vb)
Public Class Form1
Private WithEvents mTimer As System.Windows.Forms.Timer
Private WithEvents Label1 As Label
Private WithEvents Button1 As Button

Private Sub Form1_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles MyBase.Load


Dim WArea As Rectangle = _
Screen.GetWorkingArea(Me)

Me.SetBounds(100, 100, 250, 200)

Me.FormBorderStyle = _
Windows.Forms.FormBorderStyle.Fixed3D

CreateControls()
End Sub

Private Sub CreateControls()

Label1 = New Label
With Label1
.Name = "Label1"
.Text = .Name
.Font = New Font("Arial", 14)
.AutoSize = True
.Location = New Point(10, 10)
End With
Me.Controls.Add(Label1)

Button1 = New Button
With Button1

.SetBounds _
(Me.ClientSize.Width - 100, _
Me.ClientSize.Height - 50, _
90, 40)

.Font = New Font("Arial", 10)
.Name = "Button1"
.Text = "Start"
End With
Me.Controls.Add(Button1)

mTimer = _
New System.Windows.Forms.Timer

mTimer.Interval = 250

End Sub

Private Sub Button1_Click _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles Button1.Click

If Button1.Text = "Start" Then
mTimer.Start()
Button1.Text = "Stop"
Else
mTimer.Stop()
Button1.Text = "Start"
Label1.Text = Label1.Name
End If
End Sub

Private Sub mTimer_Tick _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles mTimer.Tick

Dim T As String = _
Now.ToString("HH:mm:ss")

If Label1.Text <> T Then
Label1.Text = T
End If
End Sub
End Class
' \\\ E N T E

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen