نقل قول: مرتب کردن لیست عددی
در صورتی که لیست عددی شما یک آرایه است تنها کافیست تا نوع مناسب عددی را برای آرایه انتخاب نمایید.
اما در صورتی که منظور شما از مرتب سازی ، مرتب سازی خود کار کنترل هایی مانند DataGridView است ، لازم است این نکته را یاد آور شوم که این کنترل های به صورت پیش فرض اطلاعات درج شده در سطر ها و ستون ها را از نوع رشته در نظر گرفته و مرتب می کنند . برای مرتب سازی ستون هایی مانند کد، شماره پرسنلی و ... که قالب عددی دارند لازم است تا نوع ستون را به نوع عددی تبدیل نمایید.
ساختن ستونی از نوع عددی در DataGridView می توانید از چنین کدی استفاده نمایید :
Dim Col AsNew DataGridViewColumn
Col.Name = "ID"
Col.HeaderText = "کد کاربر"
Col.ValueType = System.Type.GetType("System.Int64")
DgvData.Columns.Add(Col)
و یا در هنگام فراخوانی اطلاعات از دیتابیس نوع آن را مشخص نمایید.
نقل قول: مرتب کردن لیست عددی
اگر اعداد یکان بصورت 01 یا 02 باشند مشکلتون حل میشه
نقل قول: مرتب کردن لیست عددی
نقل قول:
نوشته شده توسط
Mani_rf
ساختن ستونی از نوع عددی در DataGridView می توانید از چنین کدی استفاده نمایید :
ممنون
ولی من میخواهم در کنترلهای معمولی مثل جعبه لیست (ListBox) یا لیست نمایش(ListView) این مرتب سازی رو انجام بدم. اعضای اون رو چطور عددی کنم؟
نقل قول: مرتب کردن لیست عددی
نقل قول:
نوشته شده توسط
ali_md110
اگر اعداد یکان بصورت 01 یا 02 باشند مشکلتون حل میشه
ولی اگر به 100 برسه باز هم مشکل سر جاش هست
نقل قول: مرتب کردن لیست عددی
نقل قول:
نوشته شده توسط
Hossis
ممنون
ولی من میخواهم در کنترلهای معمولی مثل جعبه لیست (ListBox) یا لیست نمایش(ListView) این مرتب سازی رو انجام بدم.
این هم راه حل منتها قصدم ازاین راه حل بیشتر اینه که با آورلود کردن آشنا بشین (مربوط به اون تاپیک دیگتون میشه بیشتر)
فرض می گیریم که طبق گفته ی شما احتیاج به مرتب سازی لیست باکس و لیست ویو دارین :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Sort_Control_List(ListBox1, SortType.Ascendant)
Sort_Control_List(ListView1, SortType.descendant)
End Sub
Private Enum SortType
Ascendant
descendant
End Enum
Private Overloads Sub Sort_Control_List(ByRef Listbox_control As ListBox, ByVal Sort_Type As SortType)
Dim temp As String
If Sort_Type = SortType.Ascendant Then
For i = 0 To Listbox_control.Items.Count - 1
For j = i To Listbox_control.Items.Count - 1
If Val(Listbox_control.Items(i).ToString) >= Val(Listbox_control.Items(j).ToString) Then
temp = Listbox_control.Items(i).ToString
Listbox_control.Items(i) = Listbox_control.Items(j)
Listbox_control.Items(j) = temp
End If
Next
Next
Else
For i = 0 To Listbox_control.Items.Count - 1
For j = i To Listbox_control.Items.Count - 1
If Val(Listbox_control.Items(i).ToString) <= Val(Listbox_control.Items(j).ToString) Then
temp = Listbox_control.Items(i).ToString
Listbox_control.Items(i) = Listbox_control.Items(j)
Listbox_control.Items(j) = temp
End If
Next
Next
End If
End Sub
Private Overloads Sub Sort_Control_List(ByRef listview_control As ListView, ByVal Sort_Type As SortType)
Dim temp As String
If Sort_Type = SortType.Ascendant Then
For i = 0 To listview_control.Items.Count - 1
For j = i To listview_control.Items.Count - 1
If Val(listview_control.Items(i).Text) >= Val(listview_control.Items(j).Text) Then
temp = listview_control.Items(i).Text
listview_control.Items(i).Text = listview_control.Items(j).Text
listview_control.Items(j).Text = temp
End If
Next
Next
Else
For i = 0 To listview_control.Items.Count - 1
For j = i To listview_control.Items.Count - 1
If Val(listview_control.Items(i).Text) <= Val(listview_control.Items(j).Text) Then
temp = listview_control.Items(i).Text
listview_control.Items(i).Text = listview_control.Items(j).Text
listview_control.Items(j).Text = temp
End If
Next
Next
End If
End Sub