الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أريد كود لضبط صندوق ال ListView على قد الكتابة - يوجد صورة للشرح

بدأه جواد في 5 سبتمبر 2010 · 8 رد · 707 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لو سحمتو اريد كود لضبط الصندوق الي بداخل الـ ListView الي يوجد فيه الكتابة على قد الكتابة

يعني اريد ضبط الصدنوق على مقاس الكتابة الموجودة بداخله سواء كانت الكتابة طويلة او قصيرة اريد الصدنوق يصير على قد الكتابة

يعني اريدها تكون بهذا الشكل

121267212664530422.jpg

وليس بهذا لشكل

212167213367259416.jpg

أتمنى من أجد عنده الكود

أنتظر ردودكم

تم تعديل هذه المشاركة بواسطة جواد في 5 سبتمبر 2010 في 14:13

#2

السلام عليكم...

1. ضع على الـ Form مكون PictureBox و اضبط الخاصية Visible له على False حتى لا يظهر أثناء التشغيل. ثم اكتب الكود التالي في الحدث Load للنافذة:

    Picture1.ScaleMode = vbTwips
    Set Picture1.Font = ListView1.Font

* المكون PictureBox سنستخدمه في عملية قياس عرض النص.

2. اكتب الإجراء التالي في القسم العام ثم قم باستدعائه بعد الانتهاء من تعبئة الـ ListView

Private Sub AdjustListView()
    Dim ARow As Long
    Dim ACol As Long
    Dim NewWidth As Long

    ' المرور على الصفوف و الأعمدة
    For ARow = 1 To ListView1.ListItems.Count
        ' تعديل عرض العمود الأول حسب أطول نص فيه
        NewWidth = Picture1.TextWidth(ListView1.ListItems(ARow))
        If NewWidth > ListView1.ColumnHeaders(1).Width Then
            ListView1.ColumnHeaders(1).Width = NewWidth
        End If
        ' التأكد من أن عرض العمود ليس أقل من عرض نص عنوانه
        NewWidth = Picture1.TextWidth(ListView1.ColumnHeaders(1).Text)
        If ListView1.ColumnHeaders(1).Width < NewWidth Then
            ListView1.ColumnHeaders(1).Width = NewWidth
        End If

        ' تكرار نفس الخطوات السابقة مع بقية الأعمدة
        For ACol = 2 To ListView1.ColumnHeaders.Count
            NewWidth = Picture1.TextWidth(ListView1.ListItems(ARow).SubItems(ACol - 1))
            If NewWidth > ListView1.ColumnHeaders(ACol).Width Then
                ListView1.ColumnHeaders(ACol).Width = NewWidth
            End If

            NewWidth = Picture1.TextWidth(ListView1.ColumnHeaders(ACol).Text)
            If ListView1.ColumnHeaders(ACol).Width < NewWidth Then
                ListView1.ColumnHeaders(ACol).Width = NewWidth
            End If
        Next ACol
    Next ARow
End Sub

* إذا كان عدد البنود كبيراً جداً - بالآلاف مثلاً - فربما تلاحظ بعض البطء أثناء تنفيذ ذلك الإجراء.

نرجو الاستفادة و السلام.

1

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#3

شكراً لك أخي najy_zl

ولكن أخي najy_zl الأرقام التي كاتبها انا لم تمتدإلا قليل وفي بعضهم لم يمتدو ما بعرف شو السبب

وفي بعضهم ضلت الأرقام لم تظهر بهذا الشكل مثلاً 5484965...

هل يوجد حل لحل هذه المشكلة أخي najy

بارك الله فيك

أقدر مشاركاتك وجهودك

يعطيك العافية

#4

السلام عليكم...

أرجو تحميل المثال الذي تعمل عليه حتى نحاول - أنا أو غيري - تعديله حسب المستطاع.

و السلام.

1

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#5

هذا المثال أخي najy_zl

إن شاءالله ألاقي عندك الكود

كثر الله خيرك

وشكرا

#6

السلام عليكم...

اقتباس
هذا المثال

يبدو أنه لم يتم رفع المثال. أرجو التأكد.

و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#7

معلش اخي انا اول شي حددته بس ما ضغط على رفع

هلا انا ضفته بالمرفقات

vbpro.rar

#8

السلام عليكم...

معك حق أخي جواد. الكود الذي كتبته أولاً كنت أستخدم فيه النسخة 5 من الـ ListView و هي مختلفة قليلاً عن النسخة 6 الموجودة في برنامجك. الفرق - من ناحية ما نقوم به في هذا المثال - هو أن خلايا النسخة 6 تحتوي على هوامش داخلية قبل و بعد النص.

في المرفقات نفس المشروع مع التعديلات.

vbpro02.rar

نرجو الاستفادة و السلام.

1

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#9

شكرا أخي najy_zl بارك الله فيك

تشكر على مشاركاتك ومتابعتك للمواضيع

الله يعطيك العافية

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…