تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال من فضلكم حول textbox1(i)
#1
السلام عليكم و رحمة الله و بركاته
المرجو المساعدة بخصوص index textbox1
بحيث انه اذا تكرر نفس الاسم فان index يتغير
مثل textbox1(0)
Textbox1(1)
Textbox1(2)
يعمل في vb6 بدون مشاكل
لكن في vb.net 2010
يحدث خطا
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم...

ما تتحدث عنه هو ما يعرف بمصفوفة المكونات (Control Array) حيث يمكن لمجموعة من المكونات من نفس النوع أن يكون لها اسم مشترك واحد، و يميز بنها الـ Index. لكن هذا الأمر لمي عد موجوداً في VB.NET بشكل مباشر.

سلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة: moulayyoussef
#3
ممكن تقول لنا الفكرة والغرض يمكن فيه نظره او تطبيق اسهل.
الرد }}}
تم الشكر بواسطة: moulayyoussef
#4
تقريبا البديل لك ف الدوت نت هو استخدام شئ مثل هذا

كود :
Public Function GetTextBox(ByVal sender As Control, ByVal Index As Integer) As TextBox
        Return (From Control In sender.Controls.Cast(Of Control)() Where _
                    TypeOf Control Is TextBox AndAlso _
                    Control.Tag IsNot Nothing AndAlso _
                    Control.Tag.ToString = Index.ToString _
                Select CType(Control, TextBox)).FirstOrDefault

   End Function
الرد }}}
تم الشكر بواسطة: Sajad , moulayyoussef
#5
يوجد مثال ف المرفقات.اتمني ان يكون هذا يفي ب ما طلبت


الملفات المرفقة
.rar   IndexTest.rar (الحجم : 74.08 ك ب / التحميلات : 68)
الرد }}}
تم الشكر بواسطة: Sajad , moulayyoussef
#6
-
منقول

في VB6 كان التعامل مع مجموعة أدوات (من نفس النوع) في إجراء واحد هي بجعلها مصفوفة أداة واحدة كالتالي على سبيل المثال
(ضع ثلاث Text1بمصفوفة و واحد Label)
كود :
Private Sub Text1_Change(Index As Integer)
    Select Case Index
        Case 0
            ' أفعل شيئاً
            
        Case 1
            ' أفعل شيئاً
            Me.Label1.BackColor = RGB(Int(Rnd * 256), Int(Rnd * 256), Int(Rnd * 256))
            
        Case 2
            ' أفعل شيئاً
            
    End Select
    
    Me.Label1.Caption = Text1(Index).Text
            
End Sub

في VB.NET أصبح التعامل مع مجموعة أدوات (لا يشترط نفس النوع) في إجراء واحد هي بجمع أحداثها <المتوافقة> (مع إمكانية عمل إجراء إضافي لحدث أي منها) كالتالي على سبيل المثال
(ضع ثلاث TextBox و واحد Label)
كود :
Private Sub TextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged

    Select Case sender.Name
        Case "TextBox1"
            ' أفعل شيئاً

        Case "TextBox2"
            ' أفعل شيئاً

        Case "TextBox3"
            ' أفعل شيئاً

    End Select

    Me.Label1.Text = sender.Text

End Sub

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged

    Dim rand As New Random
    Me.Label1.BackColor = Color.FromArgb(rand.Next(0, 255), rand.Next(0, 255), rand.Next(0, 255))

End Sub
الرد }}}
تم الشكر بواسطة: الشاكي لله , moulayyoussef
#7
شكرا. لكم اخواني و جزاكم الله خيرا
الرد }}}
تم الشكر بواسطة: bilal dz
#8
(12-05-14, 11:16 PM)moulayyoussef كتب : شكرا. لكم اخواني و جزاكم الله خيرا
الرد }}}
تم الشكر بواسطة:



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


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