منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
اذا امكن تعديل هذا الكود - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : اذا امكن تعديل هذا الكود (/showthread.php?tid=8156)



اذا امكن تعديل هذا الكود - مبتدئ - 26-03-13

السلام عليكم

لو عندى Listbox اريد ازاله item اضفت هذا الكود
كود :
For i As Integer = ListBox2.SelectedIndices.Count - 1 To 0 Step -1
            ListBox2.Items.RemoveAt(ListBox2.SelectedIndices.Item(i))
        Next
        ListBox2.SelectedIndex = ListBox2.SelectedIndex + 1
اريد بعد ازالت الكود يفضل معلم على الايت الى كانت مكنه بمعنى لو كان SelectedIndex = 2 بعد المسح يرجع لى SelectedIndex = 2 يعلى على item الثالثة الان ال SelectedIndex بيبتدى من 0 انا لا اقصد ان يعلم على ثالث item اقصد انو يعلم فى نفس المكن الى اتمسح منه الايتم يعنى SelectedIndex تفضل نفس SelectedIndex


اذا امكن تعديل هذا الكود - سعود - 26-03-13

لا ادري هل ما اكتبه ماتريده ام لا
بحدث النقر لزر الامر اكتب:
كود :
Dim i As Integer = ListBox1.SelectedIndex

        ListBox1.Items.Remove(ListBox1.SelectedItem)
        ListBox1.SelectedIndex += i



اذا امكن تعديل هذا الكود - سعود - 26-03-13

او من غير +=i
اكتب
=i


اذا امكن تعديل هذا الكود - سعود - 26-03-13

كود :
Dim i As Integer = ListBox1.SelectedIndex

        ListBox1.Items.Remove(ListBox1.SelectedItem)
        ListBox1.SelectedIndex = i

نعم هذا هو المطلوب على مااظن


اذا امكن تعديل هذا الكود - سعود - 26-03-13

لكن لو تحذف اخر قيمة بيصير خطا
الحل
كود :
Dim i As Integer = ListBox1.SelectedIndex        ListBox1.Items.Remove(ListBox1.SelectedItem)




        If i > ListBox1.Items.Count - 1 Then
            i -= 1


        Else
            i = i
        End If
        ListBox1.SelectedIndex = i



اذا امكن تعديل هذا الكود - مبتدئ - 26-03-13

سعود كتب :
كود :
Dim i As Integer = ListBox1.SelectedIndex

        ListBox1.Items.Remove(ListBox1.SelectedItem)
        ListBox1.SelectedIndex = i

نعم هذا هو المطلوب على مااظن

هذا هو المطلوب جزاك الله خير و جعله فى مزان حسناتك


اذا امكن تعديل هذا الكود - سعود - 26-03-13

واياك اخي الكريم
فكر بما لو كان البند المراد حذفه آخر قيمة حتما سيحدث خطا والحل #5


اذا امكن تعديل هذا الكود - مبتدئ - 26-03-13

سعود كتب :واياك اخي الكريم
فكر بما لو كان البند المراد حذفه آخر قيمة حتما سيحدث خطا والحل #5

يممكننى اضافة Try لاجل عد الحصول على الخطأ شكرآ اخى


اذا امكن تعديل هذا الكود - just.coder - 27-03-13

تفضل اخى هذا لا يعطى اخطاء اذا كانت الايتم المختارة هيا الاخيرة ويقوم بحذفها

كود :
For i As Integer = 0 To ListBox1.Items.Count - 1
            If ListBox1.SelectedIndex = i Then
                If ListBox1.SelectedIndex = ListBox1.Items.Count - 1 Then
                    ListBox1.Items.RemoveAt(i)
                    ListBox1.SelectedIndex = (i - 1)
                Else
                    ListBox1.Items.RemoveAt(i)
                    ListBox1.SelectedIndex = (i)
                End If

            End If
        Next