تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] انشاء وتحريك الادوات في زمن التشغيل
#1
Lightbulb 
السلام عليكم

ان شاء الله سوف اقوم بعمل مجموعة هائلة من الاكواد والمشاريع المصغرة عسى ان تحقق الفائدة لكم 


الغاية من هذا المثال هو كيفية انشاء ادوات وقت التنفيذ واضافة الاحداث لها (Events) عن طريق الكود 


وهذا هو الكود 


PHP كود :
Public Class Form1

    
Public Const WM_NCLBUTTONDOWN = &HA1
    
Public Const HTCAPTION 2

    
Private TextBox(10) As TextBox
    
Private Button(10) As Button
    Dim numberOfButtons 
As Integer
    
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click

        Dim newbox 
As TextBox
        
For As Integer 1 To 10
            newbox 
= New TextBox
            newbox
.Size = New Drawing.Size(10020)
            'ضبط خاصية الحجم
            newbox.Location = New Point(130, 10 + 25 * (i - 1))
            ' 
ضبط خاصية الموقع
            newbox
.Name "TextBox" i
            
' الاسم البرمجي
            newbox.Text = newbox.Name
            ' 
الاسم الظاهر الكابشن
            AddHandler newbox
.MouseDownAddressOf TextBox_MouseDown
            
' هذه مهمة جداً وهي اضافة الحدث واعطاء اسم للبروسجير الذي سينفذ الكود المطلوب
            TextBox(i) = newbox
            Me.Controls.Add(newbox)
            '
        Next

        
' نفس الشرح في الاكواد السابقة ينطبق على هذه الاكواد ولكن هذه خاصة بازرار الامر
        Dim Newbtn As Button
        For i As Integer = 1 To 10
            Newbtn = New Button
            Newbtn.Size = New Drawing.Size(100, 20)
            Newbtn.Location = New Point(10, 10 + 25 * (i - 1))
            Newbtn.Name = "Button" & i
            Newbtn.Text = Newbtn.Name
            AddHandler Newbtn.MouseDown, AddressOf NewButton_MouseDown
            Button(i) = Newbtn
            Me.Controls.Add(Newbtn)
        Next
    End Sub
    Friend Sub TextBox_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
        ' 
هذا الاجراء خاص بمكانية تحريك التكسات بوكس  بالزر الايسر للماوس ولاحظ هو Friend sub
        
For 1 To 10
            
If e.Button MouseButtons.Left Then
                TextBox
(i).Capture False
                Dim msg 
As Message Message.Create _
                
(TextBox(i).HandleWM_NCLBUTTONDOWN,
                New IntPtr(HTCAPTION), IntPtr.Zero)
                Me.DefWndProc(msg)
            End If
        Next i
    End Sub
    Friend Sub NewButton_MouseDown
(ByVal sender As ObjectByVal e As MouseEventArgs)
        ' هذا الاجراء خاص بمكانية تحريك ازرار الامر بالزر الايسر للماوس ولاحظ هو Friend sub
        For i = 1 To 10
            If e.Button = MouseButtons.Left Then
                Button(i).Capture = False
                Dim msg As Message = Message.Create _
                (Button(i).Handle, WM_NCLBUTTONDOWN,
                New IntPtr(HTCAPTION), IntPtr.Zero)
                Me.DefWndProc(msg)
            End If
        Next i
    End Sub



End Class 


المشروع بالمرفقات  


اتمنى لكم التوفيق


الملفات المرفقة صورة/صور
   

.rar   CreateControlsAndMoveIt.rar (الحجم : 77.12 ك ب / التحميلات : 62)
الرد }}}
#2
جزاك الله خيرا اخي علي
من الامور الجيدة ايضأ ان يتم حفظ هذه المواقع و التصميمات حسب الرغبة و تثبيتها
تماماً كما يحصل في مكتبة DevExpress حيث هناك ما يعرف بالمخططات يتم حفظها و استيرادها 
حسب التشكيل الذي تريده (تحفظ في ملفات XML).
بارك الله فيك.
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
#3
الله يجازيك بالخير اخي ابو ليلى وفعلا الـ Devexpress جميلة جداً لانها تعتمد على xml وامكانية حفظ التنسيق

اشكرك اخي على المرور الجميل
الرد }}}
تم الشكر بواسطة: حريف برمجة , asemshahen5


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  بدء التشغيل Startup Files ربيع 7 4,220 26-08-13, 07:40 PM
آخر رد: ربيع

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


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