تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشروع سأحتاج فيه أكثر من ألف 1000 زر ما رأيكم
#23


مارايك بالمثال الأخير
استخدمت الكود لزرع الازرار وانشاء  احداثها

كود :
Public Class otherForm
   Dim i As Integer = 0
   Dim i2 As Integer = 0
   Dim str As String = "provider=microsoft.ace.oledb.12.0;data source='" & Application.StartupPath & "\db.accdb'"
   Dim buttons As Integer '= Panel1.Controls.Count
   Dim rows As New List(Of String)
   Dim sts As New List(Of Boolean)

   Private Sub otherForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       For r = 0 To 400
           Dim btn As New Button
           btn.Text = "button-" & r
           btn.Left = i
           btn.Top = i2
           If btn.Right >= (Panel2.Width - btn.Width) Then
               i = 0
               i2 += btn.Height
               Panel2.Controls.Add(btn)
           Else
               Panel2.Controls.Add(btn)
               i += btn.Width
           End If
           AddHandler btn.Click, AddressOf btn_click
       Next

       buttons = Panel2.Controls.Count

   End Sub
   Private Function replace(ByVal bc As String) As Boolean
       If bc = "Color [YellowGreen]" Then
           Return True
       Else
           Return False
       End If
   End Function
   Private Sub btn_click(sender As Object, e As EventArgs)
       ' MsgBox(sender.text)
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("update tb set st=@st where korsi=@korsi", con)
               cm.Parameters.AddWithValue("@st", Replace(sender.backcolor.ToString))
               cm.Parameters.AddWithValue("@korsi", sender.text)
               cm.ExecuteNonQuery()
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using

   End Sub
   Private Function setbc(ByVal st As Boolean) As Color
       If st = True Then
           Return Color.Red
       Else
           Return Color.YellowGreen
       End If
   End Function

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       rows.Clear()
       sts.Clear()

       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel2.Controls.Count & " * from tb", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For i = 0 To Panel2.Controls.Count - 1
                       Panel2.Controls(i).Text = rows(i)
                       Panel2.Controls(i).BackColor = setbc(sts(i))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using


   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       rows.Clear()
       sts.Clear()
       ' buttons += Panel1.Controls.Count
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel2.Controls.Count & " * from tb where tid not in (select top " & buttons & " tid from tb)", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For i = 0 To Panel2.Controls.Count - 1
                       Panel2.Controls(i).Text = rows(i)
                       Panel2.Controls(i).BackColor = setbc(sts(i))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using
       buttons += Panel2.Controls.Count

   End Sub

   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
       rows.Clear()
       sts.Clear()

       If buttons <= Panel2.Controls.Count Then Button1.PerformClick() : Exit Sub


       buttons -= Panel2.Controls.Count
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel2.Controls.Count & " * from tb where tid not in (select top " & buttons & " tid from tb)", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For ii = 0 To Panel2.Controls.Count - 1
                       Panel2.Controls(ii).Text = rows(ii)
                       Panel2.Controls(ii).BackColor = setbc(sts(ii))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using

   End Sub

   Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
       rows.Clear()
       sts.Clear()
       buttons += Panel2.Controls.Count
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel2.Controls.Count & " * from tb where tid not in (select top " & (1000 - Panel2.Controls.Count) & " tid from tb)", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For ii = 0 To Panel2.Controls.Count - 1
                       Panel2.Controls(ii).Text = rows(ii)
                       Panel2.Controls(ii).BackColor = setbc(sts(ii))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using

   End Sub
End Class

المثال المعدل مرفق
انظر للفورم الاخر وليس الأول

آخر تعديل

كود :
Public Class otherForm
   Dim i As Integer = 0
   Dim i2 As Integer = 0
   Dim str As String = "provider=microsoft.ace.oledb.12.0;data source='" & Application.StartupPath & "\db.accdb'"
   Dim buttons As Integer '= Panel1.Controls.Count
   Dim rows As New List(Of String)
   Dim sts As New List(Of Boolean)


   Private Sub otherForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       For r = 0 To 400
           Dim btn As New Button
           btn.Text = "button-" & r
           btn.Left = i
           btn.Top = i2
           If btn.Right >= (Panel2.Width - btn.Width) Then
               i = 0
               i2 += btn.Height
               Panel2.Controls.Add(btn)
           Else
               Panel2.Controls.Add(btn)
               i += btn.Width
           End If
           AddHandler btn.Click, AddressOf btn_click
       Next

       buttons = Panel2.Controls.Count

   End Sub
   Private Function replace(ByVal bc As String) As Boolean
       If bc = "Color [YellowGreen]" Then
           Return True
       Else
           Return False
       End If
   End Function
   Private Sub btn_click(sender As Object, e As EventArgs)
       ' MsgBox(sender.text)
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("update tb set st=@st where korsi=@korsi", con)
               cm.Parameters.AddWithValue("@st", Replace(sender.backcolor.ToString))
               cm.Parameters.AddWithValue("@korsi", sender.text)
               cm.ExecuteNonQuery()
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using
       Me.Refresh()
   End Sub
   Private Function setbc(ByVal st As Boolean) As Color
       If st = True Then
           Return Color.Red
       Else
           Return Color.YellowGreen
       End If
   End Function

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       rows.Clear()
       sts.Clear()

       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel2.Controls.Count & " * from tb", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For i = 0 To Panel2.Controls.Count - 1
                       Panel2.Controls(i).Text = rows(i)
                       Panel2.Controls(i).BackColor = setbc(sts(i))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using


   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       rows.Clear()
       sts.Clear()
       For r = 0 To Panel2.Controls.Count - 1
           Panel2.Controls(r).Text = String.Empty
       Next

       ' buttons += Panel2.Controls.Count
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel2.Controls.Count & " * from tb where tid not in (select top " & buttons & " tid from tb)", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   'For n = 0 To Panel2.Controls.Count - 1
                   '    Panel2.Controls(n).Text = rows(n)
                   '    Panel2.Controls(n).BackColor = setbc(sts(n))
                   'Next


                   For n = 0 To rows.Count - 1
                       Panel2.Controls(n).Text = rows(n)
                       Panel2.Controls(n).BackColor = setbc(sts(n))
                   Next


               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using
       buttons += Panel2.Controls.Count

   End Sub

   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
       rows.Clear()
       sts.Clear()

       For r = 0 To Panel2.Controls.Count - 1
           Panel2.Controls(r).Text = String.Empty
       Next

       If buttons <= Panel2.Controls.Count Then Button1.PerformClick() : Exit Sub


       buttons -= Panel2.Controls.Count
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel2.Controls.Count & " * from tb where tid not in (select top " & buttons & " tid from tb)", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While


                   For ii = 0 To rows.Count - 1
                       Panel2.Controls(ii).Text = rows(ii)
                       Panel2.Controls(ii).BackColor = setbc(sts(ii))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using

   End Sub

   Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
       rows.Clear()
       sts.Clear()
       buttons += Panel2.Controls.Count
       Using con As New OleDb.OleDbConnection(str)
           If con.State = ConnectionState.Closed Then con.Open()
           Using cm As New OleDb.OleDbCommand("select top " & Panel2.Controls.Count & " * from tb where tid not in (select top " & (1000 - Panel2.Controls.Count) & " tid from tb)", con)
               Using dr As OleDb.OleDbDataReader = cm.ExecuteReader
                   While dr.Read
                       rows.Add(dr(1))
                       sts.Add(dr(2))
                   End While

                   For ii = 0 To Panel2.Controls.Count - 1
                       Panel2.Controls(ii).Text = rows(ii)
                       Panel2.Controls(ii).BackColor = setbc(sts(ii))
                   Next

               End Using
           End Using
           If con.State = ConnectionState.Open Then con.Close()
       End Using

   End Sub

 
End Class


الملفات المرفقة
.zip   JustSomething.zip (الحجم : 70.89 ك ب / التحميلات : 94)
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}


الردود في هذا الموضوع
RE: مشروع سأحتاج فيه أكثر من ألف 1000 زر ما رأيكم - بواسطة سعود - 04-08-17, 11:21 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مشروع] مشروع لاضافة رسم بيانى محتاج التدخل لاصلاحه dr.programming 0 214 09-11-25, 01:48 AM
آخر رد: dr.programming
  [سؤال] سؤال ترددت قبل نشرة:طابعة الباركود لماذا تطبع أكثر من ليبل فارغ قبل السليم dr.programming 1 507 20-04-25, 09:26 PM
آخر رد: Kamil
  [VB.NET] مشروع للاستأناس EMADW 3 525 02-04-25, 04:20 PM
آخر رد: princelovelorn
  [VB.NET] اذا ممكن مشروع ادارة مدرسة بدر إشتية 4 8,532 08-02-25, 02:05 AM
آخر رد: الورد2
  [VB.NET] مساعدة في مشروع ZEEN4ZEEN 0 250 12-01-25, 06:03 PM
آخر رد: ZEEN4ZEEN
  مساعدة فى حفظ مشروع برنامج الى ضيغة apk م / وليد تيتو 1 370 03-11-24, 05:27 PM
آخر رد: Taha Okla
  مشروع اكمال ساعة المسجد اجر للجميع altoki939 0 285 30-10-24, 09:49 PM
آخر رد: altoki939
  [سؤال] افضل الطرق في تحزيم مشروع بقواعد SQL محمد العامر 5 559 23-10-24, 11:19 AM
آخر رد: محمد العامر
  [سؤال] عند بدأ مشروع جديد غير قادر على روئية الـForm1 ABDULLAH HASSAN 1 435 30-04-24, 12:22 AM
آخر رد: Jounior_P
  ممكن طريقه وتصميم مشروع بالفيجوال بيسك خالد كامل1 2 471 28-04-24, 02:56 AM
آخر رد: خالد كامل1

التنقل السريع :


يقوم بقرائة الموضوع: