فيه حالتين للحصول علي ابعاد الشاشة
الحالة الأولي أنك تحسب 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
أتمني تكون الفكرة اصبحت أكثر وضوحا لك