تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف احل مشكلة نافذة البرنامج التي تختلف في كل شاشة ضروووري
#1
Question 
[b]
السلام عليكم ورحمة الله وبركاته

كيف احل مشكلة نافذة البرنامج التي تختلف في كل شاشة ضروووري

هل في كود يمدد الفورم بدون مشاكل على حسب الشاشة.. اتعبتني هذه المشكلة
لاني اريد تمديد البرنامج على كامل الشاشة


قبل التكبير


بعد التكبير



[/b]
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام Big Grin

نعم يمكنك ان تجعل الفورم بحجم الشاشة بالكامل عن طريق الكود التالي يتم وضعه في حدث form_load :
كود :
Me.WindowState = FormWindowState.Maximized

ويمكنك ان تجعل الفورم في منتصف الشاشة :

كود :
Me.StartPosition = FormStartPosition.CenterScreen
اللَّهُمَّ أَنْتَ رَبِّي ، لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ ، وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ ، أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ ، أَبوءُ لَكَ بِنِعْمتِكَ علَيَ ، وأَبُوءُ بذَنْبي فَاغْفِرْ لي ، فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ .
الرد }}}
تم الشكر بواسطة: الشاكي لله
#3
(30-04-14, 01:51 AM)Omar Mekkawy كتب :
وعليكم السلام Big Grin

نعم يمكنك ان تجعل الفورم بحجم الشاشة بالكامل عن طريق الكود التالي يتم وضعه في حدث form_load :
كود :
Me.WindowState = FormWindowState.Maximized

ويمكنك ان تجعل الفورم في منتصف الشاشة :

كود :
Me.StartPosition = FormStartPosition.CenterScreen

اخي مو معقولة اني ما اعرف هذا الكود Big Grin بس اقصد البرنامج مع ادوات البرنامج
يعني زي البرامج العادية لو كانت صغيرة وكبرتها راح تكبر النافذة وكل محتويات البرنامج بتناسق .. انا اريد ذلك اخي الكريم
الرد }}}
تم الشكر بواسطة:
#4
اضبط خاصية Anchor لكل الكونترول
الرد }}}
تم الشكر بواسطة:
#5
(01-05-14, 02:47 AM)الشاكي لله كتب : اضبط خاصية Anchor لكل الكونترول

اخي قد جربتها من قبل تلخبط كل الادوات مع بعضها لو حطيت كل الاتجاهات ولا شلت كل الاتجاهات نفس الفكرة تلخبط كل الادوات ،، جربت اكثر من خيار نفس الفكرة ..

مو معقولة مافي حل ،، كيف البرامج الأخرى
الرد }}}
تم الشكر بواسطة:
#6
لو انني فهمت سؤالك جيدا فإن ما تطلبه ليس امرا سهلا و لكنه ليس مستحيلا
أنت تحتاج لكتابة مكتبة تتعامل مع Resolution الخاص بكل شاشات الكمبيوتر...لتوضيح الأمر قليلا أنت تحتاج الي ان تكتب مكتبة تتعامل مع Font & Size الخاصة بالفورم و من ثم تقوم بعمل Tracking لأي تغييرات تحدث للفورم و بناء عليه تقوم بتغيير ابعاد الكونترول الموجودة ب الفورم طبقا للابعاد الجديدة.......انا كنت بدأت اكتب مكتبة مماثلة لطلبك منذ فترة طويلة ثم توقفت عن كتابتها لضيق الوقت لدي

عموما و حاليا ليس لديك حلول غير أن تستخدم الخاصيتين Anchor & Docking معا و تضبط برنامجك بشكل مناسب
الرد }}}
تم الشكر بواسطة: shado1796
#7
(01-05-14, 04:35 AM)silverlight كتب : لو انني فهمت سؤالك جيدا فإن ما تطلبه ليس امرا سهلا و لكنه ليس مستحيلا
أنت تحتاج لكتابة مكتبة تتعامل مع Resolution الخاص بكل شاشات الكمبيوتر...لتوضيح الأمر قليلا أنت تحتاج الي ان تكتب مكتبة تتعامل مع Font & Size الخاصة بالفورم و من ثم تقوم بعمل Tracking لأي تغييرات تحدث للفورم و بناء عليه تقوم بتغيير ابعاد الكونترول الموجودة ب الفورم طبقا للابعاد الجديدة.......انا كنت بدأت اكتب مكتبة مماثلة لطلبك منذ فترة طويلة ثم توقفت عن كتابتها لضيق الوقت لدي

عموما و حاليا ليس لديك حلول غير أن تستخدم الخاصيتين Anchor & Docking معا و تضبط برنامجك بشكل مناسب

نعم هذ ما اقصده وللعلم اني املك هذه المكتبه وقد اتيت بها من اول موقع فيجول قبل 3 سنين ،، لكن يوجد بها مشاكل بسيطة .. راح احاول ابحث عنها واكتبها ،، بس معقولة مافي طريقة سهله ؟غريب من شركة مايكروسوفت عمل ذلك
الرد }}}
تم الشكر بواسطة:
#8
ههههههههههه.مايكروسوفت تصنع فقط ما يتناسب مع احتياجاتها ف المقام الأول
عموما أنصحك أن تهتم ب الكلاس Screen و ايضا تجيد +GDI
الرد }}}
تم الشكر بواسطة:
#9
اخي العزيز ربما تجد ما ينفعك في هذا الكود .... علما انه يعمل على ضبط الرزليوشن للكونترولز الموجودة على الفورم .... تضعه في حدث التحميل للفورم

كود :
Dim DesignScreenWidth As Integer = 1600
    Dim DesignScreenHeight As Integer = 1200
    Dim CurrentScreenWidth As Integer = Screen.PrimaryScreen.Bounds.Width
    Dim CurrentScreenHeight As Integer = Screen.PrimaryScreen.Bounds.Height
    Dim RatioX as Double = CurrentScreenWidth / DesignScreenWidth
    Dim RatioY as Double = CurrentScreenHeight / DesignScreenHeight
    For Each iControl In Me.Controls
        With iControl
            If (.GetType.GetProperty("Width").CanRead) Then .Width = CInt(.Width * RatioX)
            If (.GetType.GetProperty("Height").CanRead) Then .Height = CInt(.Height * RatioY)
            If (.GetType.GetProperty("Top").CanRead) Then .Top = CInt(.Top * RatioX)
            If (.GetType.GetProperty("Left").CanRead) Then .Left = CInt(.Left * RatioY)
        End With
    Next
الرد }}}
تم الشكر بواسطة: shado1796
#10
افضل حل هو كالتالي :

عند تشغيل البرنامج يحفظ الروزليشن للجهاز ،، ويضعه في متغير .

وتحويل الروزليشن للشاشة كما تحب ان تكون .

وعند اغلاق البرنامج يعيد الروزليشن للجهاز كما كانت .
الرد }}}
تم الشكر بواسطة:



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


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