المشاركات : 491
المواضيع 63
الإنتساب : Sep 2013
السمعة :
2
الشكر: 33
تم شكره 272 مرات في 75 مشاركات
السلام عليكم
اطلب كود تحريك عدة تكست بوكس ( 1 و 2 و 3 و 4 و 5 و 6 و 7 ) بالطريقة نفسها التي يتم بها تحريك تكست0
المشاركات : 372
المواضيع 15
الإنتساب : Sep 2013
السمعة :
28
الشكر: 487
تم شكره 1677 مرات في 187 مشاركات
السلام عليكم...
1. كما قال أخونا VB_Coder: قم بتسمية كل الـ TextBoxes المعنية بنفس الاسم حتى تكون في مصفوفة مكونات.
2. انسخ الكود التالي و قم بتغيير Text1 إلى الاسم الذي لديك:
كود :
Private StartX As Single
Private StartY As Single
Private Sub Text1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
StartX = X
StartY = Y
End Sub
Private Sub Text1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
'Dim Idx As Long ' احذف هذا السطر
Dim Ctrl As Control
If Button = vbLeftButton Then
For Each Ctrl In Text1
Ctrl.Left = Ctrl.Left + X - StartX
Ctrl.Top = Ctrl.Top + Y - StartY
Next Ctrl
' لا تستعمل هذه الطريقة. احذف الأسطر الأربعة التالية
' For Idx = Text1.LBound To Text1.UBound
' Text1(Idx).Left = Text1(Idx).Left + X - StartX
' Text1(Idx).Top = Text1(Idx).Top + Y - StartY
' Next Idx
End If
End Sub
* كما هو مذكور في الكود، لا تستعمل حلقة For ... Next العادية ذات العداد الرقمي لأنها ستتسبب في حدوث خطأ في حالة حذف أحد الـ TextBoxes المنتمية للمصفوفة. بالإضافة إلى ذلك فإن استعمال حلقة For ... Next ستحتاج منك إلى إعادة تعديل الكود إذا قمت بإنقاص أو زيادة عدد الـ TextBoxes المنتمية للمصفوفة، أما استعمال حلقة For Each فإنها لا تتسبب في الخطأ المذكور، و لا تحتاج إلى تعديل لأنه لا يهمها عدد المكونات في المصفوفة.
نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ