fotros67
یک شنبه 29 تیر 1393, 12:12 عصر
با سلام خدمت اساتید محترم
من یک برنامه نوشته ام که با استفاده از background worker و تایمر اطلاعات موجود در textbox های فرم را بروز رسانی می کنم.
وقتی تایمر اجرا می شود مقدار دهی ها صورت میگیرد اما مقادیر اشتباه وارد textbox ها می شود و در واقع مقادیر جا به جا هستند.
لطفا بنده را راهنمایی کنید
کد موجود در تابع elapse از تایمر اجرا شونده:
Protected Sub Timer_Elapsed(sender As Object, e As EventArgs) Handles Timer.Elapsed
Dim Con As String = ""
Dim Url As String = ""
Dim counter As Integer
Dim oop As New Functions
Dim dt As DataTable = oop.RetrieveSites
counter = 1
For i = 1 To 16 Step 8
Dim bw1 As New BGWorkers
Url = dt.Rows(counter - 1)(3).ToString
Con = dt.Rows(counter - 1)(4).ToString
Dim gp1 As GroupBox = DirectCast(Me.Controls.Find("GroupBox" + counter.ToString, False).FirstOrDefault(), GroupBox)
Dim txt1 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + i.ToString, False).FirstOrDefault(), TextBox)
Dim txt2 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 1).ToString, False).FirstOrDefault, TextBox)
Dim txt3 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 2).ToString, False).FirstOrDefault, TextBox)
Dim txt4 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 3).ToString, False).FirstOrDefault, TextBox)
Dim txt5 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 4).ToString, False).FirstOrDefault, TextBox)
Dim txt6 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 5).ToString, False).FirstOrDefault, TextBox)
Dim txt7 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 6).ToString, False).FirstOrDefault, TextBox)
Dim txt8 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 7).ToString, False).FirstOrDefault, TextBox)
bw1.Main(txt1, txt2, txt3, txt4, txt5, txt6, txt7, txt8, Con, Url)
counter += 1
Next
End Sub
من یک برنامه نوشته ام که با استفاده از background worker و تایمر اطلاعات موجود در textbox های فرم را بروز رسانی می کنم.
وقتی تایمر اجرا می شود مقدار دهی ها صورت میگیرد اما مقادیر اشتباه وارد textbox ها می شود و در واقع مقادیر جا به جا هستند.
لطفا بنده را راهنمایی کنید
کد موجود در تابع elapse از تایمر اجرا شونده:
Protected Sub Timer_Elapsed(sender As Object, e As EventArgs) Handles Timer.Elapsed
Dim Con As String = ""
Dim Url As String = ""
Dim counter As Integer
Dim oop As New Functions
Dim dt As DataTable = oop.RetrieveSites
counter = 1
For i = 1 To 16 Step 8
Dim bw1 As New BGWorkers
Url = dt.Rows(counter - 1)(3).ToString
Con = dt.Rows(counter - 1)(4).ToString
Dim gp1 As GroupBox = DirectCast(Me.Controls.Find("GroupBox" + counter.ToString, False).FirstOrDefault(), GroupBox)
Dim txt1 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + i.ToString, False).FirstOrDefault(), TextBox)
Dim txt2 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 1).ToString, False).FirstOrDefault, TextBox)
Dim txt3 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 2).ToString, False).FirstOrDefault, TextBox)
Dim txt4 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 3).ToString, False).FirstOrDefault, TextBox)
Dim txt5 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 4).ToString, False).FirstOrDefault, TextBox)
Dim txt6 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 5).ToString, False).FirstOrDefault, TextBox)
Dim txt7 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 6).ToString, False).FirstOrDefault, TextBox)
Dim txt8 As TextBox = DirectCast(gp1.Controls.Find("TextBox" + (i + 7).ToString, False).FirstOrDefault, TextBox)
bw1.Main(txt1, txt2, txt3, txt4, txt5, txt6, txt7, txt8, Con, Url)
counter += 1
Next
End Sub