السلام عليكم و رحمة الله و بركاته
اخواني الاكارم هل توجد طريقة مجربة و فعالة لضبط دقة الشاشة على جميع الأجهزة .. جربت العديد من أكواد ال resize لكن لم أجد النتيجة المرجوّة..تقريبا الأكواد الموجودة بالمنتدى قمت بتجربتها لكنها لم تجدِ نفعًا.
لدي جهازين و كلما أشغل مشروع على الاول و اجرب بالكود و أشغله على الثاني الاكبر حجما .. دوما أجد ما لا يسرُّ الناظرين كأنْ تختفي بعض أجزاء الفورم مثلا أو يظهر فقط نصفها أو ربعها ..
بارك الله فيكم و لكم و جزاكم خير الجزاء مقدما
نعم اخي توجد طريقة جربتها وناجحه وهي التعرف على حجم الشاشة واستخدام عبارة الشرط if في الاحجام وتوسعة الادوات
فقط صور شاشة المستخدم واضهر بيانات العرض والطول واكتب عبارات شرطة اذا كان مثلا طول الشاشة 1850 والعرض 500 تتوسع الادوات بشكل المناسب
هاذي طريقتي في ضبط الشاشة طويلة قليلا ولاكن مناسبة
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك أخي الكريم " dasktop " على المساعدة
لو تتكرّم أخي الغالي .. فضل و إحسان منك .. بملف تطبيقي فقط لتجربة ذلك على جهازي
تحياتي
وعليكم السلام ورحمة الله وبركاته ،،
افضل طريقة من وجهة نظري هي :
عند تشغيل البرنامج تخزن دقة الشاشة مثلاً (1024×768) في متغير
وتعمل تغيير لدقة الشاشة لنفس الدقة التي تم تصميم التطبيق عليها .
وعند إغلاق التطبيق تعمل استرجاع للدقة .
تفضل
ضع هاذا التعريف فوق الفروم لود
كود :
Dim ProportionsArray() As CtrlProportions
وفي الفروم لود ضع هاذا الكود
كود :
Informload()
End Sub
Private Structure CtrlProportions
Dim HeightProportions As Single
Dim WidthProportions As Single
Dim TopProportions As Single
Dim LeftProportions As Single
End Structure
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
Resizeform()
End Sub
Sub Informload()
On Error Resume Next
Application.DoEvents()
ReDim ProportionsArray(0 To Controls.Count - 1)
For I As Integer = 0 To Controls.Count - 1
With ProportionsArray(I)
.HeightProportions = Controls(I).Height / Height
.WidthProportions = Controls(I).Width / Width
.TopProportions = Controls(I).Top / Height
.LeftProportions = Controls(I).Left / Width
End With
Next
End Sub
Public Sub Resizeform()
On Error Resume Next
For I As Integer = 0 To Controls.Count - 1
Controls(I).Left = ProportionsArray(I).LeftProportions * Me.Width
Controls(I).Top = ProportionsArray(I).TopProportions * Me.Height
Controls(I).Width = ProportionsArray(I).WidthProportions * Me.Width
Controls(I).Height = ProportionsArray(I).HeightProportions * Me.Height
Next
سوف تكون مرتبة الادوات فقط ماعدى النصوص سااعمل لك مثال على ذالك
(19-11-18, 04:34 PM)حريف برمجة كتب : [ -> ]وعليكم السلام ورحمة الله وبركاته ،،
افضل طريقة من وجهة نظري هي :
عند تشغيل البرنامج تخزن دقة الشاشة مثلاً (1024×768) في متغير
وتعمل تغيير لدقة الشاشة لنفس الدقة التي تم تصميم التطبيق عليها .
وعند إغلاق التطبيق تعمل استرجاع للدقة .
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك أستاذنا الكريم " حرّيف برمجة "
وجهة نظرك مسموع لها أخي الغالي ..
لو سمحت كيف يتم عمل هذا المتغيّر علمًا أنّ دقّة شاشة الجهاز الذي أفضّل العمل عليه هي : 768 - 1366
طبعا قما بجلب هذه الدقذة كما تعلم أكيد :
كود :
Dim height1 As Integer = My.Computer.Screen.Bounds.Height
Dim width1 As Integer = My.Computer.Screen.Bounds.Width
TextBox1.Text = width1 & " - " & height1
بارك الله فيك و لك و بصالح أعمالك ليوم الدّين
كما لا يفوتني تهنئتك بذكر مولد النبي المصطفى عليه و على آله و صحبه أفضل السّلام
تحياتي
السلام عليكم و رحمة الله و بركاته
تسلم أخي الكريم " daskttop " و سلم يمينك و دينك
سأجرب و أخبرك بالنتيجة ان شاء الله
تحياتي
لا انصح طريقة الاخر حريف برمجة مع كل التقدير بالاحترام له على الفكرة
لان هذه الطريقة تسبب مشكلة لاصحاب من يقوم بترتيب ايقونات
سطح المكتبه يمين ويسار واعلى واسفل الشاشة
فعند تغيير المقاسات ستسبب فى ترتيب الملفات بشكل
عشوائي بسبب صغر وتكبير مقاس الشاشة
افضل طريقة انصح بها دائماً هو التعامل مع خيارات
تلك الخيارت هى خلاصة واختصار المطلوب
للتوضيح اكثر قام الاخ khodor1985
بشرح طريقة بكل سهولة وبساطة توضح كيفية جعل الفورم اكثر تناسق
كما يمكنك مراجعة الرابط التالى والتى تتبع الشرح بها الى الاخ silverlight
تحياتى لك
وتمنياتى لك التوفيق
ممكن اح الافاضل يضع حل امثل ومجرب نتبعة في استخدامنا
شكرا لكم
السّلام عليكم و رحمة الله و بركاته
ألف شكر و بارك الله فيك و لك أخي و استاذي الكريم الغالي " elgokr " على مشاركتنا الموضوع .. رأيك محترم و يحترم .. سأحاول تجربة ما تطرّق إليه أستاذنا الكريم " khodor " بارك الله فيه
و من جهة أخرى و كرأي قرأته ذات مرّة بأحد المشاركات و هو التّصميم على حسب شاشة العميل ..!!؟؟
الفكرة تقبّلها فكري علميًّا و برمجيًّا .. لكن هذا يتطلّب أنّ كل عميل يعطيك شاشته لتشتغل عليها .. أو توفّر لديك في البيت معظم الشاشات و الإشتغال حسب الطّلب .. !!
ما يحيّرني برامج عالميّة مثل الفوتوشوب مثلاً .. و لا مرّة سمعت أنّه حدثت مشكلة بدقة الشاشة .. و هذا يعني أنّ هناك حل برمجي
كيف ؟؟
الله أعلم
تحياتي
(20-11-18, 06:46 AM)khodor1985 كتب : [ -> ]السلام عليكم إخواني الأعزاء ورحمة الله وبركاته،
من وحي الخبرة في مجال تصميم النوافذ والواجهات لقد لستخدمت في كل البرامج التي صممتها أداة الـ TableLayoutPanel، ولم أواجه أي مشكلة عند أي زبون بخصوص دقة الشاشة، لذا أنصح باستخدامها.
السّلام عليكم و رحمة الله و بركاته
أنا فعلا أتابع و أحاول فهم ما تمّ ذكره من سيادتك أستاذنا الكريم .. بارك الله فيك و لك و جزاك خير الجزاء
تحياتي و إحتراماتي