منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ضغط حجم النص - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : ضغط حجم النص (/showthread.php?tid=3624)

الصفحات: 1 2


RE: ضغط حجم النص - abuzzouz - 14-08-14

شكراً أخي العزيز nmst70
لكن للأسف لم يكن هذا ما أردته وإنما العكس تماماً أريد ضغط حجم النص ليتناسب مع حجم مربع النص وليس العكس

جزاك الله خيراً على أية حال


RE: ضغط حجم النص - sooriaty03 - 15-08-14

السلام عليكم ورحمة الله وبركاته

تفضل أخي هذا الكود في حال كان النص سطرا واحدا

كود :
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If TextBox1.PreferredSize.Width > TextBox1.Width Then
            Dim FontSize As Single = TextBox1.Font.Size
            Dim NewWidth As Integer = 0
            Do
                With TextBox1

                    FontSize -= 0.001F
                    NewWidth = TextRenderer.MeasureText(.Text, New Font(.Font.Name, FontSize, Font.Style)).Width
                    If NewWidth <= .Width Then
                        .Font = New Font(.Font.Name, FontSize, Font.Style)
                        Exit Do
                    End If

                End With

            Loop

        End If
    End Sub

وعليه فقِس في الحالة الثانية...

بالتوفيق


RE: ضغط حجم النص - silverlight - 15-08-14

المشكلة هنا ليست في عمل Scale للفونت المشكلة ان الفونت يصغر كلما قام المستخدم ب الكتابة ف التكست بوكس.

ما أريد أن أقوله هنا هو أننا نقوم ب حل مشكلة و نصنع مشكلة أخري ......

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

أعتقد و الله أعلم إن الحل الأفضل هو أن نترك المستخدم يكتب ما يريده ب الفونت العادي....ثم نحاول أن نكتشف هل انتهي من الكتابة أم لا ثم بعد ذلك نقوم ب تغيير حجم الفونت ليتناسب To Fit في التكست بوكس لذلك و كما قلت سابقا نحن في حاجة الي صناعة كونترول جديد يتم توريثه من التكست بوكس و نغير في خصائصه عن طريق رسم التكست في الحدث Paint ليتناسب مع ما تريد

لكن انا عندي سؤال ما هدفك الأصلي من تحجيم الفونت في التكست بوكس ..ربما لو قمت بتوضيح هدفك من ذلك قد نجد حلا اسهل ليتناسب مع ما تريده


RE: ضغط حجم النص - abuzzouz - 16-08-14

سأخبرك بذلك أخي silverlight


RE: ضغط حجم النص - abuzzouz - 25-08-14

السلام عليكم

أخواني الأعزاء أخيراً وبفضل الله تعالى وجدت الحل لضغط حجم النص تلقائياً في مربع النص وذلك بتعديل حجم الخط

كود :
Dim fontSize As Single = 12.0F
        Dim measuredWidth As Single
        Dim g As Graphics = Me.CreateGraphics
        Do
            Using font As New Font("Tahoma", fontSize, FontStyle.Bold)
                measuredWidth = g.MeasureString(TextBox1.Text, font).Width
            End Using
            If (measuredWidth > TextBox1.Width) Then
                fontSize = fontSize - 0.1
            End If
        Loop While (measuredWidth > TextBox1.Width)

        Using font As New Font("Tahoma", fontSize, FontStyle.Bold)
            TextBox1.Font = New Font("Tahoma", fontSize, FontStyle.Bold)
        End Using



تقبلوا جميعاً تحياتي