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

مشكلة تواجه اغلب المبرمجين و خاصة المبتدئين منهم حيث ان حجم الشاشة او دقة الشاشة كما يسميها البعض تختلف من حاسوب الى اخر  و هذا الاختلاف سيكون مشكلة حيث ستتداخل الازرار و الادوات مع بعضها البعض اذا صغر حجم الشاشة او ستظهر هوامش لا معنى لها اذا كبر الحجم 

و الحل بسيط و هو عبارة عن مجموعة اكواد طويلة قليلا انسخها و اكتبها كما هي عندك و ستحل المشكلة باذن الله

اليكم الاكواد
PHP كود :
Private DefaultControlSizes As New Dictionary(Of ControlCtrlInfo)
 
   Private FormDefaultClientSize As Size

    Public Sub 
New()
 
       InitializeComponent()
 
       Me.WindowState FormWindowState.Normal
        Me
.MinimumSize Me.Size
        FormDefaultClientSize 
Me.ClientSize

        Dim ctrl 
As Control Me.GetNextControl(MeTrue)
 
       While ctrl IsNot Nothing
            If TypeOf ctrl Is ListBox Then DirectCast
(ctrlListBox).IntegralHeight False
            DefaultControlSizes
.Add(ctrl, New CtrlInfo(ctrl.Boundsctrl.Font.Size))
 
           ctrl Me.GetNextControl(ctrlTrue)
 
       End While
 
   End Sub

    Private Sub ScaleControls
()
 
       If Me.WindowState <> FormWindowState.Minimized Then
            For Each kvp 
As KeyValuePair(Of ControlCtrlInfoIn DefaultControlSizes
                Dim ctrl 
As Control kvp.Key

                Dim Xscl 
As Double Me.ClientSize.Width FormDefaultClientSize.Width
                Dim Yscl 
As Double Me.ClientSize.Height FormDefaultClientSize.Height

                
'comment out these 2 lines if you dont want the fonts to be scaled'

 
               Dim fntscl As Single CSng(kvp.Value.cFontSize Yscl)
 
               ctrl.Font = New Font(ctrl.Font.FontFamilyfntsclctrl.Font.Stylectrl.Font.Unit)

 
               ctrl.Width CInt(kvp.Value.cBounds.Width Xscl)
 
               ctrl.Height CInt(kvp.Value.cBounds.Height Yscl)
 
               ctrl.Left CInt(kvp.Value.cBounds.Xscl)
 
               ctrl.Top CInt(kvp.Value.cBounds.Yscl)
 
           Next
        End 
If
 
   End Sub

    Private Sub Form1_Resize
(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Resize
        ScaleControls
()
 
   End Sub
End 
Class

Public Class 
CtrlInfo
    Public cBounds 
As Rectangle
    Public cFontSize 
As Single
    Public Sub 
New(ByVal Bnds As RectangleByVal FntSize As Single)
 
       cBounds Bnds
        cFontSize 
FntSize
    End Sub 
الرد }}}
تم الشكر بواسطة: asmarsou , Amir_Alzubidy , محمد بن عطية , asemshahen5


الردود في هذا الموضوع
الحل النهائي لاستخدام برنامجك بأي شاشة مهما كانت دقتها - بواسطة zazasami - 01-07-24, 09:40 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مساعدة في شاشة الدخول سيد أحمد 1 330 23-03-25, 01:47 AM
آخر رد: مصمم هاوي
Heart شاشة تسجيل الدخول والصلاحيات alshandodi 1 3,259 13-01-23, 12:18 AM
آخر رد: alnagi
  [كورس] معرفة عدد مستخدمين برنامجك dasktop 2 1,545 14-05-22, 02:47 AM
آخر رد: dasktop
  [VB.NET] الطريقة الصحيحة لجعل برنامجك متعدد اللغات سعود الشامان 5 6,408 04-02-21, 11:22 PM
آخر رد: ibra9009
  [مشروع] اجعل برنامجك يحذف نفسه عند او عدم تحقق شرط سعود 0 2,012 07-12-20, 03:33 AM
آخر رد: سعود
  [درس فيديو] التحكم الكامل في إدارة المستخدمين وإنشاء صلاحياتهم في برنامجك من خلال SQL SERVER 2016 عبدالله الدوسري 10 50,957 13-10-20, 04:48 PM
آخر رد: tanmia
Video [درس فيديو] طريقة تشغيل برنامجك عند تشغيل جهاز الكمبيوتر ahmadpal 0 1,706 06-06-20, 03:41 AM
آخر رد: ahmadpal
Wink [مشروع] تحويل الصور الى حروف وارقام في حال كانت الصورة تحوي على كلمات ahmadpal 0 2,239 13-05-20, 02:23 AM
آخر رد: ahmadpal
  خطوة خطوة - ازاي تحول برنامجك لملف exe يتم تسطيبه على اي كمبيوتر بجميع ملفاته ggtt17121985 3 3,223 11-02-20, 12:02 AM
آخر رد: ggtt17121985
  [VB.NET] مشروع شاشة تسجيل دخول بقاعدة بيانات اكسس ammar2018 2 6,768 15-08-19, 08:27 PM
آخر رد: basheer

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


يقوم بقرائة الموضوع: