منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : انشاء المسارات وتمرير البارامترات لها وقت التشغيل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
هذا الكود من تعديل الاخ الكريم : Taha Okla
في هذه المشاركة


ما شاء الله عليك - تبارك الرحمن - هذا ما كنت أقف بسببه



إذن خذ التحديث على الكود بعد الدمج بين الكودين 

أفتح مشروع جديد وضع عليه زر واحد - والكود :

لاحظ المتغير (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