تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال بخصوص button
#11
حاول تقرأ الكود(كأنك أنت البرنامج) وأنت راح تعرف كيف بيشتغل سطر سطر..
لا تفكر بالنسخ واللصق --- حتى لو اشتغل معك البرنامج 100 %

لأن لو عدلت شي بسيط ع البرنامج راح يوقف البرنامج ومش راح تعرف وين حدث الخطأ 
لأنك ما كنت فاهم كيف بيشتغل البرنامج ..

بينما لو كنت عارف برنامجك سطر سطر .. 
فلما تجي تعدل شي : راح تعرف شو لازم تعدل كمان حتى يشتغل البرنامج على أكمل وجه..

مش كل مرة راح تلاقي اللي يعرف يصلح وراك..
قبل ما تنفذ أي كود حاول تفهم : شو؟ وليش؟ ووين؟ ولوين؟ رايح هذا الكود هو، ومدخلاته، ومخرجاته..

على كل .. هذا تعديل على كامل الكود في جزئية برنامجك، ضعه في نافذة الكود ..

كود :
Imports System.Data.OleDb

Public Class Form1

    Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DB_FLP.mdb;Jet OLEDB:Database Password=")

    Dim dp As New OleDbDataAdapter("Select * From Tbl order by Nam", con)

    Dim ds As New DataSet

    Dim dt As DataTable

    Dim num2 As Integer     ' عدد السجلات ضمن الجدول
    Dim i As Integer = 0    ' مكان المؤشر الحالي في الجدول
    Dim R1 As Integer = 20  ' معدل التغير -- وهو ثابت تحدده من بداية عمل البرنامج أو من الكود
    Dim j As Integer = R1   '  المدى : مدى حركة المؤشر ضمن الحلقة


    Dim str1 As String = ""         ' شغلة للتبسيط
    Dim FirstChar As String = " "   ' أول حرف من الشغلة الحالية
    Dim Fi1 As String = " "         ' أول حرف من شغلة منتهية

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Button2.Text = "التالي"
        Button2.Enabled = False
        Button3.Text = "السابق"
        Button3.Enabled = False
    End Sub


    Private Sub FlowLayoutPanel1_Scroll(sender As Object, e As ScrollEventArgs) Handles FlowLayoutPanel1.Scroll
        '  Button2_Click(Nothing, Nothing)
    End Sub



    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        dp.Fill(ds)

        dt = ds.Tables.Item(0)

        num2 = (dt.Rows.Count - 1)
        Me.FlowLayoutPanel1.Controls.Clear()

        Do While (i <= num2)
            TA_FillData()

            i += 1
            If i = j Then Exit Do
        Loop

        Button2.Enabled = True
        Button1.Enabled = False
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        j = j - R1 : If j < 0 Then j = R1
        i = i - 2 * R1 : If i < 0 Then i = 0

        If i = 0 Then Button3.Enabled = False
        If j < num2 Then Button2.Enabled = True

        Try

            Me.FlowLayoutPanel1.Controls.Clear()

            Do While (i <= num2)
                TA_FillData()

                i += 1
                If i = j Then Exit Do
            Loop
        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
        End Try
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        j = j + R1

        Try

            Me.FlowLayoutPanel1.Controls.Clear()

            Do While (i <= num2)

                TA_FillData()

                i += 1
                If i = j Then Exit Do
            Loop

        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
        End Try

        If i = num2 + 1 Then Button2.Enabled = False
        If i > 0 Then Button3.Enabled = True
    End Sub

    Sub TA_FillData()
        str1 = dt.Rows.Item(i).Item("nam").ToString
        FirstChar = Mid(str1, 1, 1)
        FirstChar = UCase(FirstChar.Replace("إ", "أ").Replace("آ", "أ"))

        If (i = 0) Or (FirstChar <> Fi1) Then
            Dim uc1 As New UserControl1
            uc1.Label1.Text = FirstChar

            If (Asc(FirstChar) >= 65 And Asc(FirstChar) <= 90) Or (Asc(FirstChar) >= 97 And Asc(FirstChar) <= 122) Then
                uc1.Label1.Left = uc1.Left + 10
            Else
                uc1.Label1.Left = uc1.Width - uc1.Label1.Width - 10
            End If

            Me.FlowLayoutPanel1.Controls.Add(uc1)

            uc1.Label1.Font = New Font(uc1.Label1.Font.Name, uc1.Label1.Font.Size - 2, FontStyle.Bold)
            uc1.Label1.ForeColor = Color.WhiteSmoke
            uc1.BackColor = Color.LightGray
            uc1.Height = uc1.Height * 2 / 3
            uc1.Label1.Top = (uc1.Height - uc1.Label1.Height) / 2
            Fi1 = FirstChar

        End If

        Dim uc As New UserControl1
        uc.Label1.Text = dt.Rows.Item(i).Item("nam").ToString

        If (Asc(FirstChar) >= 65 And Asc(FirstChar) <= 90) Or (Asc(FirstChar) >= 97 And Asc(FirstChar) <= 122) Then
            uc.Label1.Left = uc.Left + 20
        Else
            uc.Label1.Left = uc.Width - uc.Label1.Width - 20
        End If

        Me.FlowLayoutPanel1.Controls.Add(uc)
    End Sub

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Me.Text = Asc(TextBox1.Text)
    End Sub
End Class
وفي المرفقات المثال بعد التعديل


الملفات المرفقة
.rar   ترتيب وعرض الأسماء أبجدياً.rar (الحجم : 62.75 ك ب / التحميلات : 37)
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}


الردود في هذا الموضوع
RE: سؤال بخصوص button - بواسطة Taha Okla - 23-02-23, 05:20 PM
RE: سؤال بخصوص button - بواسطة Taha Okla - 23-02-23, 09:23 PM
RE: سؤال بخصوص button - بواسطة Taha Okla - 24-02-23, 01:05 AM
RE: سؤال بخصوص button - بواسطة Taha Okla - 24-02-23, 02:48 AM
RE: سؤال بخصوص button - بواسطة Taha Okla - 24-02-23, 08:09 PM
RE: سؤال بخصوص button - بواسطة sanyor77 - 27-03-23, 10:52 PM


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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم