السلام عليكم اخوتي الكرام
اولا لم اعرف في اي قسم اضع هذا الموضوع .. لكم حرية اختيار القسم المناسب (الاخوة المشرفون)
انشأت فورم ووضعت فيه 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
تقبل حبي واحترامي لك ولعلمك ... زادك الله علما ونفع بك عباده