تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
فورم يناسب كل الشاشات
#1
غيرت فورم وخليت size 1024; 812
Maximized  فى فورم بقى ملىء الشاشه وفورم بياخد نص الشاشه ومش عارف ايه المشكله بالظبط 

هل فى مقاسات او اعدادات معينه تشتغل على كل الشاشات
الرد }}}
تم الشكر بواسطة:
#2
ممكن تأخذ Screenhot للقورم و ترفع الصورة ختي نفهم المشكلة أولا
لأنه احيانا استخدام فونت مناسب قد يحل المشكلة
وهل يحدث معك ان الكونترول علي الفورم حجمها بيكبر عند تكبيير الفورم أم لا
Retired
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy
#3
المشكلة هذي وقعت فيها من قبل وحليتها بطريقة اشوفها مناسبة بالنسبة لي :

الخطوة الأولى : عند تشغيل البرنامج تاخذ اعدادات الشاشة لنفرض مثلاً (1092,780) ونخزنها في متغير .

الخطوة الثانية : تغير اعدادات الشاشة للاعدادات اللي صممت عليها برنامجك .

الخطوة الثالثة : عند إغلاق البرنامج والخروج منه ترجع اعدادات الشاشة من المتغير في الخطوة الأولى .
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy
#4
بلغة VB.net
حمل الكلاس التالي وفك الضغط عنه


https://drive.google.com/open?id=0B7CB0Y...nQ0ZklOalU

قم بادراج الكلاس في مشروعك كالتالي
من Solution Explorer اضغط كلك يمين على اسم المشروع ثم اختر Add ومنها Existing Item ثم حدد مسار الكلاس
افتح الفورم المطلوب عمل التحجيم فيه وفي منطقة المتغيرات العامة اكتب التالي

PHP كود :
Dim MyResizer As New Resizer 

وفي حدث Form_Load اكتب التالي

PHP كود :
[font=HelveticaArialsans-serif]MyResizer.FindAllControls(Me)[/font]
[
font=HelveticaArialsans-serif]وفي حدث Form_Resize
اكتب التالي
[/font]
[
font=HelveticaArialsans-serif]MyResizer.ResizeAllControls(Me)[/font
الرد }}}
#5
(08-10-17, 04:53 PM)أحمد النجار كتب : بلغة VB.net
حمل الكلاس التالي وفك الضغط عنه


https://drive.google.com/open?id=0B7CB0Y...nQ0ZklOalU

قم بادراج الكلاس في مشروعك كالتالي
من Solution Explorer اضغط كلك يمين على اسم المشروع ثم اختر Add ومنها Existing Item ثم حدد مسار الكلاس
افتح الفورم المطلوب عمل التحجيم فيه وفي منطقة المتغيرات العامة اكتب التالي

PHP كود :
Dim MyResizer As New Resizer 

وفي حدث Form_Load اكتب التالي

PHP كود :
[font=HelveticaArialsans-serif]MyResizer.FindAllControls(Me)[/font]
[
font=HelveticaArialsans-serif]وفي حدث Form_Resize
اكتب التالي
[/font]
[
font=HelveticaArialsans-serif]MyResizer.ResizeAllControls(Me)[/font

جميل اخي الله يحفظك Heart
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy , أبو خالد الشكري
#6
(08-10-17, 04:53 PM)أحمد النجار كتب : بلغة VB.net
حمل الكلاس التالي وفك الضغط عنه


https://drive.google.com/open?id=0B7CB0Y...nQ0ZklOalU

قم بادراج الكلاس في مشروعك كالتالي
من Solution Explorer اضغط كلك يمين على اسم المشروع ثم اختر Add ومنها Existing Item ثم حدد مسار الكلاس
افتح الفورم المطلوب عمل التحجيم فيه وفي منطقة المتغيرات العامة اكتب التالي

PHP كود :
Dim MyResizer As New Resizer 

وفي حدث Form_Load اكتب التالي

PHP كود :
[font=HelveticaArialsans-serif]MyResizer.FindAllControls(Me)[/font]
[
font=HelveticaArialsans-serif]وفي حدث Form_Resize
اكتب التالي
[/font]
[
font=HelveticaArialsans-serif]MyResizer.ResizeAllControls(Me)[/font

من لديه الكلاس او يعرف فكرته لاني دخلت الرابط و ظهرت رسالة طلب اذن بالدخول؟!!
الرد }}}
تم الشكر بواسطة:
#7
أظن أنه الكود التالي :

كود النافذة هو : 
كود :
Public Class Form1

   Dim R As New ResizeControls()

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       ResizeControls.SubResize(Me, 100, 100)

       Me.StartPosition = FormStartPosition.CenterScreen

       Me.CenterToScreen()

       Me.WindowState = FormWindowState.Maximized

       'DataGridView1.Rows.Add(6)

   End Sub

   Private Sub Form1_HandleCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.HandleCreated
       R.Container = Me
   End Sub

   Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize

       Me.StartPosition = FormStartPosition.CenterScreen

       R.ResizeControls()

   End Sub
End Class


كود الكلاس هو : 
كود :
' هذا الكود يكتب تحت كلاس الفورم أو في مودل جديد
' ==================================================  
' ==================================================  

Public Class ResizeControls

   Dim RatioTable As New Hashtable

   Private WindowHeight As Single
   Private WindowWidth As Single
   Private HeightRatio As Single
   Private WidthRatio As Single

   Private _Container As New Control

   Private Shared m_FormWidth As Long                          'Original form width.
   Private Shared m_FormHeight As Long

   Public Property Container() As Control
       Get
           Return _Container
       End Get
       Set(ByVal Ctrl As Control)
           _Container = Ctrl
           FullRatioTable()
       End Set

   End Property

   Private Structure SizeRatio
       Dim TopRatio As Single
       Dim LeftRatio As Single
       Dim HeightRatio As Single
       Dim WidthRatio As Single
   End Structure

   Private Sub FullRatioTable()
       WindowHeight = _Container.Height
       WindowWidth = _Container.Width
       RatioTable = New Hashtable
       AddChildrenToTable(_Container)

   End Sub

   Private Sub AddChildrenToTable(ByRef ChildContainer As Control)
       Dim R As New SizeRatio

       For Each C As Control In ChildContainer.Controls
           With C
               R.TopRatio = CSng(.Top / WindowHeight)
               R.LeftRatio = CSng(.Left / WindowWidth)
               R.HeightRatio = CSng(.Height / WindowHeight)
               R.WidthRatio = CSng(.Width / WindowWidth)
               RatioTable(.Name) = R
               If .HasChildren Then
                   AddChildrenToTable(C)
               End If
           End With
       Next

   End Sub

   Public Sub ResizeControls()


       HeightRatio = CSng(_Container.Height / WindowHeight)
       WidthRatio = CSng(_Container.Width / WindowWidth)

       WindowHeight = _Container.Height
       WindowWidth = _Container.Width

       ResizeChildren(_Container)



   End Sub

   Private Sub ResizeChildren(ByRef ChildContainer As Control)

       Dim R As New SizeRatio
       For Each C As Control In ChildContainer.Controls
           With C
               R = CType(RatioTable(.Name), SizeRatio)
               .Top = CInt(WindowHeight * R.TopRatio)
               .Left = CInt(WindowWidth * R.LeftRatio)
               .Height = CInt(WindowHeight * R.HeightRatio)
               .Width = CInt(WindowWidth * R.WidthRatio)

               If .HasChildren Then
                   ResizeChildren(C)

               End If

           End With


           Select Case True
               Case TypeOf C Is ListBox
                   Dim L As New ListBox
                   L = CType(C, ListBox)
                   L.IntegralHeight = False
           End Select

           ResizeControlFont(C, WidthRatio, HeightRatio)

       Next





   End Sub

   Public Shared Sub SubResize(ByVal F As Form, ByVal percentW As Single, ByVal percentH As Single)

       Dim FormHeight As Long
       Dim FormWidth As Long
       Dim HeightChange As Single, WidthChange As Single


       FormHeight = Int((Screen.PrimaryScreen.WorkingArea.Height) * (percentH / 100))
       FormWidth = Int((Screen.PrimaryScreen.WorkingArea.Width) * (percentW / 100))

       With F
           .Height = FormHeight
           .Width = FormWidth

           HeightChange = .ClientSize.Height / m_FormHeight
           WidthChange = .ClientSize.Width / m_FormWidth


       End With


   End Sub



   Private Sub ResizeControlFont(ByRef Ctrl As Control, ByVal RatioW As Single, ByVal RatioH As Single)

       Dim FSize As Single = Ctrl.Font.Size
       Dim FStyle As FontStyle = Ctrl.Font.Style
       Dim FNome As String = Ctrl.Font.Name
       Dim NewSize As Single = FSize

       NewSize = CSng(FSize * Math.Sqrt(RatioW * RatioH))
       Dim NFont As New Font(FNome, CSng(NewSize), FStyle)
       Ctrl.Font = NFont

   End Sub

End Class
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: justforit , محمد خيري



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


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