كيف يمكنني تغيير حجم أعمدة ListView تلقائيًا برمجيًا؟

StackOverflow https://stackoverflow.com/questions/57584

سؤال

لقد وجدت بعض الأمثلة باستخدام Win32 API أو محاكاة مجموعة أزرار ^+ (كنترول-+) باستخدام مفاتيح الإرسال, ، ولكن على الأقل باستخدام طريقة SendKeys، تلتقط طريقة عرض القائمة المؤشر وتضبطه على الساعة الرملية حتى أضغط على زر البدء على لوحة المفاتيح.ما هي أنظف طريقة للقيام بذلك؟

هل كانت مفيدة؟

المحلول

يبدو وكأنه دعوة ل myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent) سوف تفعل ما تريد.أعتقد أنه ما عليك سوى الاتصال به بعد إضافة عنصر.

مزيد من المعلومات هنا

نصائح أخرى

وفق MSDN, ، إذا قمت بتعيين عرض العمود على -1، فسيتم تغيير حجمه تلقائيًا إلى العنصر الأوسع

قم بالتكرار عبر جميع الأعمدة واضبط العرض على -1 بعد إضافة المحتوى.

بعد إضافة الروتين التالي إلى الكود الخاص بك، قم باستدعائه من أي إجراء/وظيفة.لا تستخدمه في إجراء "Form_Load" الخاص بك بالرغم من ذلك.اتصل به فقط بعد إضافة عنصر إلى ListView الخاص بك (أو إذا كنت تقوم بإجراء إضافات متعددة، فاتصل به مرة واحدة في نهاية جميع الإضافات):

    Private Sub AutoSizeListViewColumns(oListView As ListView)
        Dim nCol As Integer = 0
        SuspendLayout()
        For nCol = 0 To (oListView.Columns.Count - 1)
            oListView.Columns(nCol).Width = -1  'forces autosizing on column
        Next
        oListView.Refresh()
        ResumeLayout()
    End Sub
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top