Clever_MRG
شنبه 05 آذر 1384, 01:19 صبح
در این مورد پیاده سازی های متفاوتی وجود داره که روش زیر یکی از آنهاست:
در ابتدای کار کلاس جدیدی تعریف می کنین و وراثت اون رو بر اساس StatusBar تعیین می کنید .
Public Class ProgressStatus: Inherits StatusBar
End Class
با انجام این کار کلاس تعریف شده تمام خواص یک Statusbar را داراست .
اینبار یک متغیر از نوع Progressbar تعریف کرده وآن را خلق نمایید.
Public Class ProgressStatus: Inherits StatusBar
Public progressBar As New progressBar
Sub New ()
progressBar.Hide ()
Me.Controls.Add (progressBar)
End Sub
End Class
- حال با تعریف properties برای progressbar سبک آن را مشخص می کنیم
Private _progressBar As Integer = -1
Public Property setProgressBar () As Integer
Get
Return _progressBar
End Get
Set (ByVal Value as Integer)
_progressBar = Value
Me.Panels (_progressBar).Style = StatusBarPanelStyle.OwnerDraw
End Set
End Property
و برای قرار دادن موقعیت مناسب آن در Statusbar از کد زیر استفاده می کنیم:
Private Sub Reposition (ByVal sender As Object, _
ByVal sbdevent As System.Windows.Forms.StatusBarDrawItemEventArgs) _
Handles MyBase.DrawItem
progressBar.Location = New Point (sbdevent.Bounds.X, sbdevent.Bounds.Y)
progressBar.Size=NewSize (sbdevent.Bounds.Width, sbdevent.Bounds.Height)
progressBar.Show ()
End Sub
حال به فرم اصلیتان بیایید و یک کلاس از نوع کلاس تعریف شده ایجاد کنید
Public StatusBar as New ProgressStatus
در فرم اصلی رویه زیر را تایپ کنید:
Private Sub InitializeStatusBar ()
1) Dim info = New System.Windows.Forms.StatusBarPanel
2) Dim progress = New System.Windows.Forms.StatusBarPanel
info.Text = "Ready”: info.Width = 100
3) progress.AutoSize=System.Windows.Forms.StatusBarPa nelAutoSize.Spring
4) With StatusBar
.Panels.Add (info)
.Panels.Add (progress)
.ShowPanels = True
.setProgressBar = 1
.progressBar.Minimum = 0
.progressBar.Maximum = 100
.progressBar.Value = 50
End With
5) Me.Controls.Add (StatusBar)
End Sub
در قسمت اول ودوم متغییر هایی از نوع StatusBarPanel تعریف کرده ایم که اولی برای قشنگیه و دومی برای قرار دادن Progressbar درون آن .
با دستور سوم Panel تعریف شده را به صورت Auto size در می آوریم.
در قسمت چهارم پانلها وهمچنین Progressbar را مقدار دهی اولیه کرده و درقسمت پنجم آن را به صورت دینامیک
خلق می کنیم .
در پایان کافی است که نام رو یه را در یکی از ٍEvent ها فرا خوانی کرده ونتیجه را ببینیم.
Private Sub Button6_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button6.Click
InitializeStatusBar
End sub
اگه با مشکلی برحوردید از این source استفاده کنید.
حالایه نفر پیدا بشه بگه لود کردن برنامه ها و گزارش روند کار با Progressbar چطوریه .
در ابتدای کار کلاس جدیدی تعریف می کنین و وراثت اون رو بر اساس StatusBar تعیین می کنید .
Public Class ProgressStatus: Inherits StatusBar
End Class
با انجام این کار کلاس تعریف شده تمام خواص یک Statusbar را داراست .
اینبار یک متغیر از نوع Progressbar تعریف کرده وآن را خلق نمایید.
Public Class ProgressStatus: Inherits StatusBar
Public progressBar As New progressBar
Sub New ()
progressBar.Hide ()
Me.Controls.Add (progressBar)
End Sub
End Class
- حال با تعریف properties برای progressbar سبک آن را مشخص می کنیم
Private _progressBar As Integer = -1
Public Property setProgressBar () As Integer
Get
Return _progressBar
End Get
Set (ByVal Value as Integer)
_progressBar = Value
Me.Panels (_progressBar).Style = StatusBarPanelStyle.OwnerDraw
End Set
End Property
و برای قرار دادن موقعیت مناسب آن در Statusbar از کد زیر استفاده می کنیم:
Private Sub Reposition (ByVal sender As Object, _
ByVal sbdevent As System.Windows.Forms.StatusBarDrawItemEventArgs) _
Handles MyBase.DrawItem
progressBar.Location = New Point (sbdevent.Bounds.X, sbdevent.Bounds.Y)
progressBar.Size=NewSize (sbdevent.Bounds.Width, sbdevent.Bounds.Height)
progressBar.Show ()
End Sub
حال به فرم اصلیتان بیایید و یک کلاس از نوع کلاس تعریف شده ایجاد کنید
Public StatusBar as New ProgressStatus
در فرم اصلی رویه زیر را تایپ کنید:
Private Sub InitializeStatusBar ()
1) Dim info = New System.Windows.Forms.StatusBarPanel
2) Dim progress = New System.Windows.Forms.StatusBarPanel
info.Text = "Ready”: info.Width = 100
3) progress.AutoSize=System.Windows.Forms.StatusBarPa nelAutoSize.Spring
4) With StatusBar
.Panels.Add (info)
.Panels.Add (progress)
.ShowPanels = True
.setProgressBar = 1
.progressBar.Minimum = 0
.progressBar.Maximum = 100
.progressBar.Value = 50
End With
5) Me.Controls.Add (StatusBar)
End Sub
در قسمت اول ودوم متغییر هایی از نوع StatusBarPanel تعریف کرده ایم که اولی برای قشنگیه و دومی برای قرار دادن Progressbar درون آن .
با دستور سوم Panel تعریف شده را به صورت Auto size در می آوریم.
در قسمت چهارم پانلها وهمچنین Progressbar را مقدار دهی اولیه کرده و درقسمت پنجم آن را به صورت دینامیک
خلق می کنیم .
در پایان کافی است که نام رو یه را در یکی از ٍEvent ها فرا خوانی کرده ونتیجه را ببینیم.
Private Sub Button6_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button6.Click
InitializeStatusBar
End sub
اگه با مشکلی برحوردید از این source استفاده کنید.
حالایه نفر پیدا بشه بگه لود کردن برنامه ها و گزارش روند کار با Progressbar چطوریه .