05-09-16, 11:06 PM
(آخر تعديل لهذه المشاركة : 05-09-16, 11:06 PM {2} بواسطة عبدالرحمن المكاوي.)
(05-09-16, 05:38 PM)ابو ليلى كتب : اخي الكريم ان كنت تريد ان تعمل بطريقة احترافية فيتوجب عليك العمل مع دوال الرسم و معالجة احداث الضغط في اماكن محددة توافق اماكن الازرارطيب اذ كنت اريد ان يكون المستطيل علي hd1 كيف سيكون الكود
انا افترض ان كل ما على الواجهة هو عبارة عن صورة ثابته
لذا الحل الوحيد هو اضافة حدث في نقاط محددة توافق مواقع الازرار على الشاشة
في تصوري لو قمت برسم مستطيل صغير فوق كل زر و بعدها قمت بمعالجة حدث الضغط داخل هذا المستطيل تكون قد وصلت الى المطلوب
طبعا بامكانك المعالجة بطرق اخرى
وفقا لتصوري
لنقم بتعريف المتغيرات التالية
PHP كود :
Private rect As Rectangle
Private pen As Pen = Pens.Black
بعدها سنعطي قيم ابتدائية لرسم المستطيل في المكان الصحيح فوق الزر المطلوب مع الحدث الذي نريد التقاطه
PHP كود :
rect = New Rectangle(439, 49, 158, 23)
AddHandler Click, AddressOf Form2_Click
بعدها سنقوم برسم المستطيل مع اقلاع النموذج بتجاوز الطريقة الافتراضية للرسم
PHP كود :
Protected Overrides Sub OnPaint(e As PaintEventArgs)
MyBase.OnPaint(e)
e.Graphics.DrawRectangle(pen, rect)
End Sub
الان اصبح لدينا مستطيل فوق الزر المحدد كل ما بقي هو معالجة الحدث المسؤول عن الضغط داخل المستطيل
PHP كود :
Private Sub Form2_Click(sender As Object, e As EventArgs)
Dim cursorPos As Point = Me.PointToClient(Cursor.Position)
If rect.Contains(cursorPos) Then
MessageBox.Show("Button Clicked")
Else
MessageBox.Show("Button Not Clicked")
End If
Invalidate()
End Sub
عليك فقط ايجاد المواضع الصحيحة للازرار على النموذج و حجمها
بالتوفيق اخي
(05-09-16, 05:38 PM)ابو ليلى كتب : اخي الكريم ان كنت تريد ان تعمل بطريقة احترافية فيتوجب عليك العمل مع دوال الرسم و معالجة احداث الضغط في اماكن محددة توافق اماكن الازرارطيب اذ كنت اريد ان يكون المستطيل علي hd1 كيف سيكون الكود
انا افترض ان كل ما على الواجهة هو عبارة عن صورة ثابته
لذا الحل الوحيد هو اضافة حدث في نقاط محددة توافق مواقع الازرار على الشاشة
في تصوري لو قمت برسم مستطيل صغير فوق كل زر و بعدها قمت بمعالجة حدث الضغط داخل هذا المستطيل تكون قد وصلت الى المطلوب
طبعا بامكانك المعالجة بطرق اخرى
وفقا لتصوري
لنقم بتعريف المتغيرات التالية
PHP كود :
Private rect As Rectangle
Private pen As Pen = Pens.Black
بعدها سنعطي قيم ابتدائية لرسم المستطيل في المكان الصحيح فوق الزر المطلوب مع الحدث الذي نريد التقاطه
PHP كود :
rect = New Rectangle(439, 49, 158, 23)
AddHandler Click, AddressOf Form2_Click
بعدها سنقوم برسم المستطيل مع اقلاع النموذج بتجاوز الطريقة الافتراضية للرسم
PHP كود :
Protected Overrides Sub OnPaint(e As PaintEventArgs)
MyBase.OnPaint(e)
e.Graphics.DrawRectangle(pen, rect)
End Sub
الان اصبح لدينا مستطيل فوق الزر المحدد كل ما بقي هو معالجة الحدث المسؤول عن الضغط داخل المستطيل
PHP كود :
Private Sub Form2_Click(sender As Object, e As EventArgs)
Dim cursorPos As Point = Me.PointToClient(Cursor.Position)
If rect.Contains(cursorPos) Then
MessageBox.Show("Button Clicked")
Else
MessageBox.Show("Button Not Clicked")
End If
Invalidate()
End Sub
عليك فقط ايجاد المواضع الصحيحة للازرار على النموذج و حجمها
بالتوفيق اخي

