Rubrik: Controls · StatusBar/ProgressBar | VB-Versionen: VB.NET | 17.02.04 |
ProgressBar in StatusBar ohne OwnerDraw (.NET) Dieser Tipp zeigt, wie man in VB.NET eine Fortschrittsanzeige in einem StatusBar-Control realisieren kann, ohne das Panel auf "OwnerDraw" setzen zu müssen. | ||
Autor: Michael Fietz | Bewertung: | Views: 18.190 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Thorsten Thiel schreibt in seinem Beispiel zur ProgressBar in einer StatusBar:Zitat:
Leider ist es in VB.NET nicht möglich, Steuerelemente auf einem Statusbar Control zu positionieren. Manchmal wäre dies aber wünschenswert - z.B. zur Anzeige eines Fortschrittbalkens.
..es ist möglich. Folgendes Beispiel zeigt, wie eine solche ProgressBar in das 3. Panel einer StatusBar eingefügt wird und nach der Anzeige wieder entfernt.
Platzieren Sie auf die Form einen Button, sowie eine StatusBar und erstellen über die Panels-Auflistung drei Panels.
Fügen Sie nachfolgenden Code in den Codeteil der Form ein und starten das Projekt.
Private Sub Button1_Click(ByVal sender As System.Object, _ BaVal e As System.EventArgs) Handles Button1.Click ' Position der StatusBar ermitteln Dim p As Point p = StatusBar1.Location ' neue ProgressBar Dim pbar As New ProgressBar ' Größe festlegen pbar.Size = New Size(200, Me.StatusBar1.Height - 6) ' linken Rand festlegen Dim pbarLeft As Integer pbarLeft = p.X + Me.StatusBar1.Panels(0).Width + _ Me.StatusBar1.Panels(1).Width ' Position festlegen pbar.Location = New Point(pbarLeft, 4) pbar.Step = 1 ' ProgressBar der StatusBar hinzufügen Me.StatusBar1.Controls.Add(pbar) ' Berechnung ausführen Dim i As Integer For i = 1 To 100 Threading.Thread.Sleep(20) pbar.PerformStep() Next ' ProgressBar wieder entfernen Me.StatusBar1.Controls.Remove(pbar) End Sub