PDA

View Full Version : اضافه کردن یک ProgressBar به Statusbar



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 چطوریه .

oracle_2007
دوشنبه 07 آذر 1384, 17:49 عصر
سلام
مردونه دستت درد نکنه ..
یه حال اساسی دادی هاااا