تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[كود] استفسار في الكومبوبكس
#11
(25-05-16, 05:35 PM)الوادي كتب : عبدالرحمن إنت رجعت لحكاية الصور، لكن مادام رفعت مشروعك في الموضوع السابق فعلى أساسه راح أعدل لك الكود لكن الملف اللي في النت على وضعه السابق وما راح يمشي معه التغيير.
أنا مشيت مع الكود بنفس الأسلوب السابق عشان ما تتلخبط وأكيد صار شويت تعديلات لكن الأسلوب هو نفسه.
PHP كود :
Public Class Form1

    Dim dt 
As New DataTable()
 
   Dim hold As Boolean

    Private Sub Form1_Load
(sender As System.ObjectAs System.EventArgsHandles MyBase.Load

        dt
.Columns.AddRange(New DataColumn() {New DataColumn("title"), New DataColumn("section"), New DataColumn("link")})

 
       Dim wc As New Net.WebClient()
 
       Dim src As String wc.DownloadString("http://arab-live.ucoz.net/Test.txt")

 
       For Each str As String In src.Split(vbLf'
            Dim splt() = Split(str, ",")
            Dim r As DataRow = dt.NewRow
            r.Item("title") = splt(0)
            r.Item("section") = splt(1)
            r.Item("link") = splt(2)
            dt.Rows.Add(r)
        Next

        TextBox1_TextChanged(Nothing, Nothing)

        ComboBox1.SelectedIndex = 0
        TextBox1.Focus()

    End Sub


    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        If hold Then Exit Sub
        Try
            Dim s As String = Me.ListBox1.SelectedValue
            If s.Trim <> "" AndAlso s.Trim.StartsWith("http://") Then s = "http://" & s
            If s <> "" Then Process.Start(s)
        Catch ex As Exception
        End Try
    End Sub

    Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
        hold = True

        Dim q As IEnumerable(Of DataRow)
        If ComboBox1.Text = "All" Then
            q = From x As DataRow In dt
                Where x.Item("title").ToString.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower)
        Else
            q = From x As DataRow In dt
                Where x.Item("section").ToString.ToLower.StartsWith(Me.ComboBox1.Text.Trim.ToLower) _
                And x.Item("title").ToString.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower)
        End If

        Me.ListBox1.DataSource = If(q.Count = 0, Nothing, q.CopyToDataTable)
        Me.ListBox1.DisplayMember = "title"
        Me.ListBox1.ValueMember = "link"
        Me.ListBox1.SelectedIndex = -1

        hold = False
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        TextBox1_TextChanged(Nothing, Nothing)
    End Sub

End Class 
في مشكلة موجوده في    ComboBox1.SelectedIndex = 0 وعندما احذفها لا يعطيني اي فئات مثل All Sport الخ شوف المشكلة من هنا في المرفقات ارجو الحل


الملفات المرفقة
.rar   Family Arab Tv.rar (الحجم : 99.78 ك ب / التحميلات : 51)
الرد }}}
تم الشكر بواسطة:
#12
عبدالرحمن انا فهمت منك انك عناصر ComoBox1 هي
All
Sport
Films
News

على العموم راح اشوف المرفق الحين.
الرد }}}
تم الشكر بواسطة:
#13
(25-05-16, 05:46 PM)الوادي كتب : عبدالرحمن انا فهمت منك انك عناصر ComoBox1 هي
All
Sport
Films
News

على العموم راح اشوف المرفق الحين.

لكن العاصر مش ظاهرة داخل combox ارجوك الحل
الرد }}}
تم الشكر بواسطة:
#14
عبدالرحمن، أنا كنت فاكر أنك وضعت العناصر في ال ComboBox من البرنامج وليس من الملف المرفوع، على العموم
ضع هذ الكود قبل سطر ComboBox1.SelectedIndex = 0 ورد لي خبر
PHP كود :
Dim q From x As DataRow In dt Select x.Item("section")
        
ComboBox1.Items.AddRange(q.ToArray)
        
ComboBox1.Items.Insert(0"All"
الرد }}}
تم الشكر بواسطة:
#15
(25-05-16, 06:02 PM)الوادي كتب : عبدالرحمن، أنا كنت فاكر أنك وضعت العناصر في ال ComboBox من البرنامج وليس من الملف المرفوع، على العموم
ضع هذ الكود قبل سطر ComboBox1.SelectedIndex = 0 ورد لي خبر
PHP كود :
       Dim q From x As DataRow In dt Select x.Item("section")
 
       ComboBox1.Items.AddRange(q.ToArray)
 
       ComboBox1.Items.Insert(0"All"

وووووووووووووو  يعجز اللسان عن الوصف ولله ابداع متميز شكرا
الرد }}}
تم الشكر بواسطة: الوادي
#16
اسف اخي لقد تعبتك كثيرا لكن يوجد مشكلة عويصه وهي اني اذا اضفت اكثر من Items في الليست بوكس ووضعت لهما تصنيف معيا في الكوموبكس ياتي لي بكل Iteam تنصيفة انا اريد اذ كان التصنيفة موجودة مسبقا ان يدخل لي Iteam الجديد في التصنيفة

والمشكلة في الصورة والكود موجود مسبقا في الوراء




الرد }}}
تم الشكر بواسطة:
#17
يا عبدالرحمن،

أضف كلمة Distinct لتكون مثل
PHP كود :
Dim q From x As DataRow In dt Select x.Item("section"Distinct 

وطالما أن كلمة All تكون من الملف، فاحذف السطر
PHP كود :
ComboBox1.Items.Insert(0"All"


أيضاً عدل التالي
PHP كود :
Dim q As IEnumerable(Of DataRow

If 
ComboBox1.Text "All" Then
    q 
From x As DataRow In dt
        Where x
.Item("title").ToString.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower)
Else
    
From x As DataRow In dt
        Where x
.Item("section").ToString.ToLower.StartsWith(Me.ComboBox1.Text.Trim.ToLower_
        
And x.Item("title").ToString.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower)
End If 

ليصيح بعد حذف If كالتالي
PHP كود :
Dim q As IEnumerable(Of DataRow) =
    
From x As DataRow In dt
    Where x
.Item("section").ToString.ToLower.StartsWith(Me.ComboBox1.Text.Trim.ToLower_
    
And x.Item("title").ToString.ToLower.StartsWith(Me.TextBox1.Text.Trim.ToLower
الرد }}}
تم الشكر بواسطة:
#18
تمام شكرا كتير انت شخص محترم جدا وبتحب تساعد الغير وربنا يساعدك في شغلك وفي دنيتك
الرد }}}
تم الشكر بواسطة: الوادي



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


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