منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : جعل الادوات في منتصف الفورم بدقة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم اخوتي الكرام
اولا لم اعرف في اي قسم اضع هذا الموضوع .. لكم حرية اختيار القسم المناسب (الاخوة المشرفون)
انشأت فورم ووضعت فيه Panel وفيه بعض الادوات لا على التعيين ثم قمت بتوسيط هذا الـ panel في الفورم  في حدث تغيير الحجم  وفق المعادلة المعروفة التالية :

كود :
Dim x As Integer = (Me.Width - panel1.Width) / 2
       Dim y As Integer = (Me.Height - panel1.Height) / 2
       panel1.Location = New Point(x, y)
ولاحظت عند التصغير ان الـ panel لايكون في المنتصف ثم قمت بالتعديل حتى تم الامر بشكل صحيح
 واردت ان تكون هذه المعلومة بين ايديكم لتستفيدوا منها وتكون صدقة جارية والكود المعدل على النحو التالي:

كود :
Dim x As Integer = (Me.Width - 16 - panel1.Width) / 2
       Dim y As Integer = (Me.Height - 36 - panel1.Height) / 2
       panel1.Location = New Point(x, y)
ارجو التجربة  وابداء الرأي والله المستعان .. دمتم بخير
جرب هذا بدون كود

حدد أداة Panel

من القائمة Format ومنه Center in Form وتنفيذ كل من Horizontally وVertically

من الخاصية Anchor ألغي كل الإتجاهات الأربعة
السلام عليكم اخي rnmr كم يسعدني النقاش 
في الحالة التي تذكرها سيكون البانل يحتل كامل الفورم والادوات ستبقى في مكانها المحدد حتى لو كبر الفورم
أما في حالتنا نحن لانريد تغيير حجم البانل الذي يحوي الادوات التي نريدها دائما في منتصف الفورم
والبانل هو فقط لكي لانكتب اكواد لكل اداة
دمت بخير ومحبا للخير
(07-10-18, 08:50 PM)ابراهيم ايبو كتب : [ -> ]
السلام عليكم اخي rnmr كم يسعدني النقاش 
في الحالة التي تذكرها سيكون البانل يحتل كامل الفورم والادوات ستبقى في مكانها المحدد حتى لو كبر الفورم
أما في حالتنا نحن لانريد تغيير حجم البانل الذي يحوي الادوات التي نريدها دائما في منتصف الفورم
والبانل هو فقط لكي لانكتب اكواد لكل اداة
دمت بخير ومحبا للخير


يبدو أنك في الخطوة الأخير بخصوص Anchor حددت الإتجاهاة الأربع، في حين أنني ذكرت ألغي


(07-10-18, 08:31 PM)rnmr كتب : [ -> ]من الخاصية Anchor ألغي كل الإتجاهات الأربعة


دمت بصحة وسلامة
اخي rnmr
صحيح انا لم اقم بالغاء الاتجاهات الاربعة وبعد الغاءها اصبحت مثل الكود الاول 
فعند التكبير قد لاتلحظ اختلاف المسافة اليمين واليسار والاعلى والاسفل
لكن قم بالتصغير حتى يلامس حد الفورم حد البانل ولاحظ المسافات واعطني رايك
انا استحدم نسخة 2008
بالمناسبة البانل موضوع في وسط الفورم تماما باستخدام ازرار التوسيط
(07-10-18, 08:23 PM)ابراهيم ايبو كتب : [ -> ]
السلام عليكم اخوتي الكرام
اولا لم اعرف في اي قسم اضع هذا الموضوع .. لكم حرية اختيار القسم المناسب (الاخوة المشرفون)
انشأت فورم ووضعت فيه Panel وفيه بعض الادوات لا على التعيين ثم قمت بتوسيط هذا الـ panel في الفورم  في حدث تغيير الحجم  وفق المعادلة المعروفة التالية :

كود :
Dim x As Integer = (Me.Width - panel1.Width) / 2
       Dim y As Integer = (Me.Height - panel1.Height) / 2
       panel1.Location = New Point(x, y)
ولاحظت عند التصغير ان الـ panel لايكون في المنتصف ثم قمت بالتعديل حتى تم الامر بشكل صحيح
 واردت ان تكون هذه المعلومة بين ايديكم لتستفيدوا منها وتكون صدقة جارية والكود المعدل على النحو التالي:

كود :
Dim x As Integer = (Me.Width - 16 - panel1.Width) / 2
       Dim y As Integer = (Me.Height - 36 - panel1.Height) / 2
       panel1.Location = New Point(x, y)
ارجو التجربة  وابداء الرأي والله المستعان .. دمتم بخير

(07-10-18, 09:07 PM)ابراهيم ايبو كتب : [ -> ]
اخي rnmr
صحيح انا لم اقم بالغاء الاتجاهات الاربعة وبعد الغاءها اصبحت مثل الكود الاول 
فعند التكبير قد لاتلحظ اختلاف المسافة اليمين واليسار والاعلى والاسفل
لكن قم بالتصغير حتى يلامس حد الفورم حد البانل ولاحظ المسافات واعطني رايك
انا استحدم نسخة 2008
بالمناسبة البانل موضوع في وسط الفورم تماما باستخدام ازرار التوسيط


جربت المرفق الذي من حضرتك

فلم أجد الفرق، أو قد لم أفهم قولك (حتى يلامس حد الفورم حد البانل)
اخي عندما تقوم بتكبير الفورم قد لاتلاحظ الفرق بين الفراغ اليمين واليسار والاعلى والاسفل
وكن عندما تصغر الفورم الى حد البانل من الاسفل واليمين لاحظ انه ليس في الوسط
(07-10-18, 09:21 PM)ابراهيم ايبو كتب : [ -> ]
اخي عندما تقوم بتكبير الفورم قد لاتلاحظ الفرق بين الفراغ اليمين واليسار والاعلى والاسفل
وكن عندما تصغر الفورم الى حد البانل من الاسفل واليمين لاحظ انه ليس في الوسط


اتضح أن طريقتك ليست في منتصف الفورم تماما
بسبب أنك تستخدم Me.Height وهذه بتحسب حتى ارتفاع إطار الفورم

في حين انه ينبغي استخدام ClientSize مثل Me.ClientSize.Height

سعيد بالنقاش والتحاور الجميل مع حضرتك
سأجرب ذلك تسلم ياعالي

نعم ياغالي بهذا الكود سيكون كامل الفورم مع شريط العنوان وكونتور الفورم داخل في الحساب
وهكذا سيكون الكود لوضع اي كونترول في وسط الفورم على النحو التالي
كود :
Dim x As Integer = (Me.ClientSize.Width - panel1.Width) / 2
       Dim y As Integer = (Me.ClientSize.Height - panel1.Height) / 2
       panel1.Location = New Point(x, y)
وكوني لم اعرف الخاصية  ClientSize اجتهدت انطلاقا الخاصية size

تقبل حبي واحترامي لك ولعلمك ... زادك الله علما ونفع بك عباده