08-03-13, 08:03 AM
السلام عليكم
أعتذر على التطفل
حاول دائما ان يكون الكود شامل عام
الكود التالي يقوم بالمطلوب حتى لو كانت الأعمدة مليون ويحافظ على نسبة كل عمود بشرط أن تعطيه نسبة مجموع الأعمدة النهائي
ونستخدمه مثلا عند تغير مساحة الفورم
أعتذر على التطفل
حاول دائما ان يكون الكود شامل عام
الكود التالي يقوم بالمطلوب حتى لو كانت الأعمدة مليون ويحافظ على نسبة كل عمود بشرط أن تعطيه نسبة مجموع الأعمدة النهائي
PHP كود :
Sub ResizeHeaders(ByVal lv As ListView, ByVal 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 Object, ByVal e As System.EventArgs) Handles Me.Resize
Me.ResizeHeaders(Lvw, 1)
End Sub
