03-09-22, 12:51 AM
هذا الكود من تعديل الاخ الكريم : Taha Okla
في هذه المشاركة
ما شاء الله عليك - تبارك الرحمن - هذا ما كنت أقف بسببه
إذن خذ التحديث على الكود بعد الدمج بين الكودين
أفتح مشروع جديد وضع عليه زر واحد - والكود :
لاحظ المتغير (J) هو عدد أشرطة التمرير الذي تريده / بإمكانك وضعها بالكود نتيجة طريقة التقسيم التي تريد ..
في هذه المشاركة
ما شاء الله عليك - تبارك الرحمن - هذا ما كنت أقف بسببه
إذن خذ التحديث على الكود بعد الدمج بين الكودين
أفتح مشروع جديد وضع عليه زر واحد - والكود :
لاحظ المتغير (J) هو عدد أشرطة التمرير الذي تريده / بإمكانك وضعها بالكود نتيجة طريقة التقسيم التي تريد ..
كود :
Dim pTop As Integer = 4
Private Location_control As New Point(10, 50)
Dim i1 As Integer
Private Sub All(c As Control())
Dim pi As ProgressBar = CType(c(0), ProgressBar)
Dim l As Label = CType(c(1), Label)
For i As Integer = 1 To 100
pi.Invoke(Sub() pi.Value = i)
l.Invoke(Sub() l.Text = pi.Value)
Threading.Thread.Sleep(150)
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim J As Integer = 5
Dim pProgress As ProgressBar() = New ProgressBar(J) {}
Dim lLable As Label() = New Label(J) {}
For i = 0 To J
pProgress(i) = New ProgressBar
pProgress(i).Name = "pProgressX" & i
pProgress(i).Location = New Point(Location_control.X + 10, Location_control.Y)
pProgress(i).Width = Me.Width - 100
pProgress(i).Height = 20
pProgress(i).Minimum = 0
pProgress(i).Maximum = 100
' pProgress(i).Value = 25
Location_control.Y += 10
Controls.Add(pProgress(i))
lLable(i) = New Label
lLable(i).Name = "lLableX" & i
lLable(i).Location = New Point(pProgress(i).Width + Location_control.X + 10, Location_control.Y)
lLable(i).Width = Me.Width - 30
lLable(i).Height = 20
lLable(i).Text = 0
Location_control.Y += 24
Controls.Add(lLable(i))
Next
'=========================================
Dim ths As New List(Of Threading.Thread)
Dim d As New Dictionary(Of ProgressBar, Label)
Dim pros As New List(Of ProgressBar)
Dim lbls As New List(Of Label)
For Each cl As Control In Me.Controls
Dim prog As ProgressBar = Nothing
Dim lbl As Label = Nothing
If TypeOf cl Is ProgressBar Then
prog = DirectCast(cl, ProgressBar)
pros.Add(prog)
ElseIf TypeOf cl Is Label Then
lbl = DirectCast(cl, Label)
lbls.Add(lbl)
End If
Next
For r As Integer = 0 To pros.Count - 1
d.Add(pros(r), lbls(r))
Next
For n As Integer = 0 To d.Count - 1
Dim th As Threading.Thread
th = New Threading.Thread(AddressOf All)
ths.Add(th)
Next
For h As Integer = 0 To ths.Count - 1
Dim co(2) As Control
co(0) = d.Keys(h)
co(1) = d.Values(h)
Dim t As Threading.Thread = ths(h)
t.Start(co)
Next
End Sub