Hi,
ich blick hier grad nicht durch... ich habe eine class.vb die meine die ein Bauprozess simuliert, wenn ein Button geklickt wird dann läuft ein Countdown ab und es wird ein Label erstellt was getan wird, eine PBar (mit Prozenten) und ein Label wie lange es noch dauert bis es fertig ist. Siehe bild.
Wie man sehen kann sind diese Objekte untereinander .... Wie bekomme ich sie nebeneinander ?
hier der Code:
ich hatte es kurzzeitig hinbekommen das sie nebeneinander sind.
Hier das Bild:
Aber wenn der Countdown abgelaufen ist wird nur die PBar und die Restzeit entfernt ... das erste Infolabel bleibt stehen
siehe Hier:
Ich hoffe mir kann einer weiterhelfen ...
hier der code dazu :
ich blick hier grad nicht durch... ich habe eine class.vb die meine die ein Bauprozess simuliert, wenn ein Button geklickt wird dann läuft ein Countdown ab und es wird ein Label erstellt was getan wird, eine PBar (mit Prozenten) und ein Label wie lange es noch dauert bis es fertig ist. Siehe bild.
Wie man sehen kann sind diese Objekte untereinander .... Wie bekomme ich sie nebeneinander ?
hier der Code:
VB.NET-Quellcode
- Public _progressBar As Pbar
- Public _restTimeLabel As Label
- Public fp2 As New FlowLayoutPanel
- Public Sub New(timername As String, timetocompleteSeconds As Integer, flowPanel As FlowLayoutPanel)
- Timer = New Timer() With {.Interval = 1000, .Enabled = True}
- AddHandler Timer.Tick, AddressOf Timer_Tick
- RunsOutAt = DateAdd(DateInterval.Second, timetocompleteSeconds, Now)
- CreateCluster(timername, flowPanel)
- StartetAt = Now
- Timer.Start()
- End Sub
- Public Sub CreateCluster(timername As String, FlowPanel As FlowLayoutPanel)
- FlowPanel.FlowDirection = FlowDirection.LeftToRight
- fp2.Controls.Add(New Label() With {.Text = timername, .Width = 200, .Height = 20})
- _progressBar = New Pbar
- With _progressBar
- .Width = 100 : .Height = 10
- End With
- fp2.Controls.Add(_progressBar)
- _restTimeLabel = New Label() With {.Text = New TimeSpan(0, 0, CInt(DateDiff(DateInterval.Second, Now, RunsOutAt))).Duration.ToString}
- fp2.Controls.Add(_restTimeLabel)
- FlowPanel.Controls.Add(fp2)
- End Sub
- Public Property Timer As Timer
- Public Property StartetAt As DateTime
- Public Property RunsOutAt As DateTime
- Public Sub Timer_Tick(sender As Object, e As EventArgs)
- Dim completTimeSpan As Integer = CInt(DateDiff(DateInterval.Second, StartetAt, RunsOutAt))
- Dim resttime As Integer = CInt(DateDiff(DateInterval.Second, Now, RunsOutAt))
- Dim percentValue As Double = ((completTimeSpan - resttime) * 100) / completTimeSpan
- If percentValue >= 100 Then
- _progressBar.Value = 100
- fp2.Visible = False
- _progressBar.Visible = False
- _restTimeLabel.Visible = False
- _progressBar.SendToBack()
- Timer.Stop()
- RaiseEvent Loadcompleted()
- Else
- _progressBar.Value = percentValue
- _restTimeLabel.Text = "Restzeit " & New TimeSpan(0, 0, CType(DateDiff(DateInterval.Second, Now, RunsOutAt), Integer)).Duration.ToString
- End If
- End Sub
- Public Event Loadcompleted()
ich hatte es kurzzeitig hinbekommen das sie nebeneinander sind.
Hier das Bild:
Aber wenn der Countdown abgelaufen ist wird nur die PBar und die Restzeit entfernt ... das erste Infolabel bleibt stehen
siehe Hier:
Ich hoffe mir kann einer weiterhelfen ...
hier der code dazu :
VB.NET-Quellcode
- Public _progressBar As Pbar
- Public _restTimeLabel As Label
- Public fp2 As New FlowLayoutPanel
- Public Sub New(timername As String, timetocompleteSeconds As Integer, flowPanel As FlowLayoutPanel)
- Timer = New Timer() With {.Interval = 1000, .Enabled = True}
- AddHandler Timer.Tick, AddressOf Timer_Tick
- RunsOutAt = DateAdd(DateInterval.Second, timetocompleteSeconds, Now)
- CreateCluster(timername, flowPanel)
- StartetAt = Now
- Timer.Start()
- End Sub
- Public Sub CreateCluster(timername As String, fp2 As FlowLayoutPanel)
- fp2.FlowDirection = FlowDirection.LeftToRight
- fp2.Controls.Add(New Label() With {.Text = timername, .Width = 200, .Height = 20})
- _progressBar = New Pbar
- With _progressBar
- .Width = 100 : .Height = 10
- End With
- fp2.Controls.Add(_progressBar)
- _restTimeLabel = New Label() With {.Text = New TimeSpan(0, 0, CInt(DateDiff(DateInterval.Second, Now, RunsOutAt))).Duration.ToString}
- fp2.Controls.Add(_restTimeLabel)
- End Sub
- Public Property Timer As Timer
- Public Property StartetAt As DateTime
- Public Property RunsOutAt As DateTime
- Public Sub Timer_Tick(sender As Object, e As EventArgs)
- Dim completTimeSpan As Integer = CInt(DateDiff(DateInterval.Second, StartetAt, RunsOutAt))
- Dim resttime As Integer = CInt(DateDiff(DateInterval.Second, Now, RunsOutAt))
- Dim percentValue As Double = ((completTimeSpan - resttime) * 100) / completTimeSpan
- If percentValue >= 100 Then
- _progressBar.Value = 100
- fp2.Visible = False
- _progressBar.Visible = False
- _restTimeLabel.Visible = False
- _progressBar.SendToBack()
- Timer.Stop()
- RaiseEvent Loadcompleted()
- Else
- _progressBar.Value = percentValue
- _restTimeLabel.Text = "Restzeit " & New TimeSpan(0, 0, CType(DateDiff(DateInterval.Second, Now, RunsOutAt), Integer)).Duration.ToString
- End If
- End Sub
- Public Event Loadcompleted()