الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

س : موقع الأداة بالنّسبة للشّاشة

بدأه الكتاح في 9 أكتوبر 2012 · 6 رد · 819 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرّحمن الرّحيم

الإخوة الأكارم : السّلام عليكم

سؤال هو : كيف أستطيع أن أحدّد - بالشّفرة - موقع الأداة بالنّسبة للشّاشة ؟

بمعنى أنّه : لديّ button موجود داخل panel و الـ panel داخل panel داخل groupbox ، كيف أحدّد موقع الـ button بالنّسبة للشّاشة ، و ليس بالنّسبة للأداة الحاضنة له ؟

#2

السلام عليكم ورحمة الله وبركاته

أخي الكريم لا أظن أن ذلك ممكن بشكل مباشر لأن الأداة المحضونة لا يمكن أن تخرج عن نطاق الأداة الحاضنة لها وإذا تجاوزت الأداة المحضونة حدود الأداة الحاضنة لها عندها لا تظهر ( الأداة المحضونة ) ولكن يمكنك حسابها أبعاد الأداة المحضونة بالنسبة للنافذة على الشكل التالي :

لنفرض أنك تريد أن تضع الأداة المحضونة على بعد 100 أفقي بالنسبة للنافذة ( وليس للأداة الحاضنة ) وكان الإحداثي الأفقي للأداة الحاضنة بالنسبة للنافذة 80 فعندها يكون الإحداثي الإفقي للأدة المحضونة بالنسبة لأداة الحاضنة يساوي 20=80-100.

ونفس المبدأ يطبق إذا كانت الأداة محضونة في أكثر من أداة حاضنة أو إذا كنت تريد حساب أبعاد الأداة بالنسبة للشاشة وليس للنافذة.

السلام عليكم ورحمة الله وبركاته

تم تعديل هذه المشاركة بواسطة DOWNLOADER في 10 أكتوبر 2012 في 10:49

#3

السلام عليكم ورحمه الله وبركاته

اخي يمكنك التحكم بالخاصية Location

.:: Wish to become better and better ::.

#4

السلام عليكم

بإمكانك ذلك من خلال استخدام الدالة PointToScreen

مثال :

dim ctrlLocation as point = me.pointtoscreen(Mycontrol.location)

حيث Mycontrol هو اسم الأداة

تم تعديل هذه المشاركة بواسطة عاشق للبرمجة في 11 أكتوبر 2012 في 03:17

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#5

جزاكم الله خيراً و أحسن إليكم ..

جربت PointToScreen فأدّت الغرض في حالة أنّ الأداة موجودة على الفورم مباشرة ، لكنّها لم ئؤدّ الغرض في حالة أنها موجودة داخل panel و هو الآخر داخل panel

 
 Dim x1, y1 As Short
        x1 = Me.Left + Panel1.Left + Panel2.Left + Button1.Left : y1 = Me.Top + Panel1.Top + Panel2.Top + Button1.Top
        Dim ctrlLocation As Point = Me.PointToScreen(Button1.Location)
        Dim c As Point = New Point(x1, y1)
        MsgBox(c.ToString & vbCrLf & ctrlLocation.ToString)

أريد الآن أن أجرّب طريقة أخرى أرجو أن تساعدوني بها ، هل هناك شفرة لمعرفة الأداة الحاضنة ؟

تم تعديل هذه المشاركة بواسطة الكتاح في 11 أكتوبر 2012 في 10:23

#6
الكتاح كتب:

هل هناك شفرة لمعرفة الأداة الحاضنة ؟

السلام عليكم ورحمة الله وبركاته

نعم يمكنك أخي الكريم معرفة الأداة الحاضنة لأي أداة عن طريق الخاصية Parent على الشكل التالي:

Msgbox(MyControl.Parent.Name)

السلام عليكم ورحمة الله وبركاته

تم تعديل هذه المشاركة بواسطة DOWNLOADER في 11 أكتوبر 2012 في 10:36

#7

الشّكر الجزيل لكم جميعاً .. جزاكم الله خيراً .. و شكراً للتفاعل و للمساعدة القيّمة ..

توصّلت الآن للحل باستخدام الأداة الحاضنة ، و هو في المرفقات ...

WindowsApplication6.rar

مواضيع مشابهة