تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة الحجم الكبير للبرنامج ع الشاشة
#1
Tongue 
السلام عليكم

انا صممت برنامج ع VB.Net حين تقوم بنقل البرنامج ع جهاز اخر تظهر الفورمات وكل محتويات الفورم والبرنامج بحجم كبير ونصفها مختفي من الشاشة
مع العلم ان مقاس شاشتي هو ١٩ انش عريض والشاشة التي نقلت البرنامج اليها ١٩ انش بشكل مربع وليس مستطيل او عريض هل يوجد حل
الرد
تم الشكر بواسطة:
#2
يجب أن تعلم أنه في اي نظام تشغيل فإن الفورم وفي في حالة التكبير ليغطي الشاشة دائما ما يفقد البرواز الحارجي للفورم أيضا يجب أن تضع في اعتبارك انه لا يغطي كل الشاشة بل يغطي الجزء الذي يعلو او يجاور شريط المهام الخاص بالويندوز نفسه و عموما لضبط الفورم لكي يعمل مع اي شاشة كمبيوتر عليك أن تحسب أبعاد الشاشة و تضبط الفورم بناء علي تلك الأبعاد مع ضبط خواص الكونترول الموجودة في الفورم مثل خاصية Docking, Padding, Anchor, Margins
الرد
تم الشكر بواسطة: ربيع
#3
عفوا ولكن كيف احسب ابعاد الشاشة وكيف اضبط الفورم بناء ع تلك الابعاد مود مثلا وشكرا لك مقدما
الرد
تم الشكر بواسطة:
#4
فيه حالتين للحصول علي ابعاد الشاشة

الحالة الأولي أنك تحسب WorkingArea
و الدالة التالية توضح كيفية حساب WorkingArea 

كود :
Public Function ScreenToWorkingRectangle() As System.Drawing.Rectangle
       Dim rect As System.Drawing.Rectangle = CType(Nothing, System.Drawing.Rectangle)
       Dim displayDevices As System.Windows.Forms.Screen() = System.Windows.Forms.Screen.AllScreens
       For i As Integer = 0 To displayDevices.Length - 1
           Dim currentDisplayDevice As System.Windows.Forms.Screen = displayDevices(i)
           rect = System.Drawing.Rectangle.Union(rect, currentDisplayDevice.WorkingArea)
       Next
       Return rect
   End Function


الحالة الثانية و هي أن تحسب ابعاد الشاشة كلها ٍScreenBounds
و الدالة التالية توضح كيف تحسب ذلك

كود :
Public Function ScreenToRectangle() As System.Drawing.Rectangle
       Dim rect As System.Drawing.Rectangle = CType(Nothing, System.Drawing.Rectangle)
       Dim displayDevices As System.Windows.Forms.Screen() = System.Windows.Forms.Screen.AllScreens
       For i As Integer = 0 To displayDevices.Length - 1
           Dim currentDisplayDevice As System.Windows.Forms.Screen = displayDevices(i)
           rect = System.Drawing.Rectangle.Union(rect, currentDisplayDevice.Bounds)
       Next
       Return rect
   End Function


الأن كيف تحسب ابعاد الفورم ليملأ WorkingArea مثلا
يجب أن تضع في الاعتبار ان حواف الفورم الخارجية سمكها غالبا قيمته تساوي 8

مثلا في الحدث Load الخاص بالفورم اكتب الكود ب الشكل التالي

كود :
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Dim workingArea As Rectangle = ScreenToWorkingRectangle()
       Me.Location = New Point(workingArea.X - 8, workingArea.Y - 8)
       Me.Size = New Size(workingArea.Width + 16, workingArea.Height + 16)
   End Sub


أتمني تكون الفكرة  اصبحت أكثر وضوحا لك
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اريد معرفة طريقة فتح الفورم في موضع محدد علي الشاشة أبو عبدالله الحلواني 2 39 منذ 2 ساعة مضت
آخر رد: احمد 2021
  [VB.NET] مشكلة في سحب s_token من الكوكيز trakktour 1 857 23-02-21, 05:50 AM
آخر رد: عادل526
  [سؤال] مشكلة netsh advfirewall Vimtos 1 98 20-02-21, 10:56 PM
آخر رد: Vimtos
  مشكلة عند تصدير الداتا قريد إلى الاكسل يظهر الوقت مع التاريخ ؟ أبووسم 3 206 19-02-21, 08:53 PM
آخر رد: أبووسم
Tongue [VB.NET] إعدادات للبرنامج ليتذكر صورة ما و يحفظعا Necro PC 5 368 18-02-21, 08:36 PM
آخر رد: Necro PC
Heart [Acces2007] مشكلة في قاعدة البيانات ali bajmmal 3 281 02-02-21, 01:14 PM
آخر رد: ali bajmmal
  [سؤال] ممكن حل مشكلة فى كود الحفظ عاصم النجار 2 243 01-02-21, 07:07 AM
آخر رد: عاصم النجار
  [VB.NET] مشكلة فى كود transaction new_programer 5 294 30-01-21, 12:49 AM
آخر رد: new_programer
Photo مشكلة بعد تثبيت برنامجي في نظام التشغيل win10 بسام محمدغانم 1 197 22-01-21, 02:20 PM
آخر رد: nrkarat
  كيف أجعل نافذة البرنامج تغطي الشاشة باكملها ؟ [ التفاصيل بالداخل ] GDRBN 1 179 17-01-21, 02:13 PM
آخر رد: moosa_alabri

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


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