تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود توسيع أعمدة أداة Listview بالنسبة المئوية حسب حجم الأداة
#1
السلام عليكم ورحمة الله وبركاته

هذا الكود قمت بعمله لتوسيع أعمدة أداة الـ Listview لتأخذ حجمها بالنسبة المئوية علي حسب حجم الأداة :

الـدالــــــــــة :
كود :
[color=#0000ff]Public Function[/color] PercentWidth([color=#0000ff]ByVal [/color]Percent [color=#0000ff]As Decimal[/color], [color=#0000ff]ByVal[/color] lv [color=#0000ff]As[/color] ListView) [color=#0000ff]As Integer[/color]
[color=#0000ff]        On Error Resume Next[/color]
       [color=#0000ff] Return[/color] Percent * (lv.Width - 5) / 100
    End Function

يتم إستخدام الدالة عن طريق حدث الـ Resize الخاص بالـ Form ويمكن وضعه في أي حدث آخر كـ Timer مثلاً :

كود :
[color=#0000ff]Private Sub[/color] Form1_Resize([color=#0000ff]ByVal[/color] sender [color=#0000ff]As Object[/color], [color=#0000ff]ByVal [/color]e [color=#0000ff]As [/color]System.EventArgs)[color=#0000ff] Handles Me[/color].Resize
        [color=#0000ff]For Each[/color] c [color=#0000ff]As [/color]ColumnHeader In ListView.Columns
            [color=#0000ff]Select Case[/color] c.Index
                [color=#0000ff]Case [/color]0
                    c.Width = PercentWidth(50, ListView)
                [color=#0000ff]Case [/color]1
                    c.Width = PercentWidth(30, ListView)
                [color=#0000ff]Case [/color]2
                    c.Width = PercentWidth(20, ListView)
[color=#0000ff]            End Select[/color]
[color=#0000ff]        Next[/color]
   [color=#0000ff] End Sub[/color]
الكود أعلاه في حالة كانت الأداة تحتوي علي 3 أعمدة فقط .


****
***
**
*
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة: ربيع
#2
جزاك الله خيرا
كفيت ووفيت
ربنا يجعله فى موازين حسناتك
الرد }}}
تم الشكر بواسطة: ربيع
#3
نحمده ونصلي على رسوله الكريم

وعليكم السلام ورحمة الله وبركاته
بارك الله فيك وجزاك كل خير، فكرة جميلة جدا Smile
الرد }}}
تم الشكر بواسطة:
#4
السلام عليكم

أعتذر على التطفل

حاول دائما ان يكون الكود شامل عام

الكود التالي يقوم بالمطلوب حتى لو كانت الأعمدة مليون ويحافظ على نسبة كل عمود بشرط أن تعطيه نسبة مجموع الأعمدة النهائي

PHP كود :
Sub ResizeHeaders(ByVal lv As ListViewByVal percent As Single)
        
Dim FinalHeadersWidth lv.Width percent
        Dim CurrentHeadersWidth 
As Integer
        
For Each c As ColumnHeader In lv.Columns
            CurrentHeadersWidth 
+= c.Width
        Next
        
'طرحنا 1 بكسل لكل عمود لكي لا يظهر السكرول بار إذا كانت النسبة 1
        Dim RemainWidth As Integer = FinalHeadersWidth - CurrentHeadersWidth - lv.Columns.Count
        For Each c As ColumnHeader In lv.Columns
            Dim val = (c.Width / CurrentHeadersWidth) * RemainWidth
            If c.Width + val > 1 Then
                c.Width += val
            End If
        Next
    End Sub 

ونستخدمه مثلا عند تغير مساحة الفورم
PHP كود :
Private Sub Form1_Resize(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Resize
        Me
.ResizeHeaders(Lvw1)
    
End Sub 
الرد }}}
تم الشكر بواسطة: ربيع
#5
فعلا الكود عملي أكثر من كودي

جزاك الله خير الجزاء أبو يعقوب
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة: ربيع


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كود لجعل أداة النص لا تقبل إلا الأرقام sooriaty03 11 7,666 29-05-16, 12:59 AM
آخر رد: CLARO
  الرسم علي أداة DataGridView RaggiTech 0 2,332 17-10-12, 07:23 PM
آخر رد: RaggiTech
  معرفه ال item المختار من ListView RaggiTech 0 1,340 17-10-12, 05:44 PM
آخر رد: RaggiTech
  كيفية رسم لون متدرج على أداة في الفورم RaggiTech 0 1,727 17-10-12, 05:17 PM
آخر رد: RaggiTech
  اضافة ToolTip إلى أداة معينة RaggiTech 0 1,839 17-10-12, 04:47 PM
آخر رد: RaggiTech

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


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