を使用して基礎以前の例を 、我々は、どのように表示され視覚的な基本的な。ネット 、自分の列のいずれかでリストビューのデータを並べ替える。
プロジェクトの前には、目的の順序であるかを選択するには、2つのボタンを追加します。 下の写真のように:

その後、同じフォームのコードでは、2つの新しいクラスを(サイズによってOrdenarPorNombreとOrder)を作成し、ボタンのイベントは、我々が選択した順序に対応するクラスの新しいインスタンスを持つListViewのListViewItemSorterプロパティを設定してなめる。 コードが短いので、多くの分析を要しません。 それから私は、フォームのすべてのコードを残す:
輸入System.IO Public Class Form1の プライベートサブをForm1_Load(System.ObjectとしてByValを送信、_ いるSystem.EventArgsとしてByVal e)のハンドルMyBase.Load 薄暗いDの新しいDirectoryInfoのように( "C:\ WINDOWS") ListView1.View = View.Details ListView1.FullRowSelect = Trueに ListView1.BeginUpdate() ListView1.Items.Clear() d.GetFilesでFileInfoのようにそれぞれのfの 新しいListViewItemを(f.Name)として薄暗いアイテム item.SubItems.Add(f.length) item.SubItems.Add(f.CreationTime) item.SubItems.Add(f.LastWriteTime) item.SubItems.Add(f.LastAccessTime) ListView1.Items.Add(アイテム) 次の ListView1.EndUpdate() End Subの します。Private Sub Button1_Click(System.ObjectとしてByValを送信、_ いるSystem.EventArgsとしてByVal e)はButton1.Clickを処理します。 "名前で並べ替え ListView1.ListViewItemSorter =新しいordenarPorNombre End Subの プライベートサブをbutton2_Click(System.ObjectとしてByValを送信、_ いるSystem.EventArgsとしてByVal e)は、Button2.Clickを処理します。 "サイズで並べ替え ListView1.ListViewItemSorter =新しいordenarPorTamaño End Subの エンドクラス クラスordenarPorNombre IComparerを実装してい
パブリック関数は、(オブジェクトとしてByVal Xは、オブジェクトとしてByVal y)は_を比較 整数System.Collections.IComparer.Compareを実装して ListViewItemのように薄暗いITEM1 = Cタイプ(Xは、ListViewItem) して、ListViewItem = Cタイプ(Yは、ListViewItem)として薄暗い項目2 String.Compare(item1.Text、item2.Text)を返す エンド機能 エンドクラス
クラスordenarPorTamaño IComparerを実装してい パブリック関数は、(オブジェクトとしてByVal Xは、オブジェクトとしてByVal y)は_を比較 整数System.Collections.IComparer.Compareを実装して ListViewItemのように薄暗いITEM1 = Cタイプ(Xは、ListViewItem) して、ListViewItem = Cタイプ(Yは、ListViewItem)として薄暗い項目2 Math.Signリターン((item1.SubItems(1)CLngテキスト) - CLng(item2.SubItems(1)テキスト)。) エンド機能 エンドクラス
いつものように、私はコードが役に立つことを願っています。
情報Bitacoras.com ...
Bitacoras.comのレート:基礎として、上記の例を使用して、我々は、どのようにその列のいずれかでVisual Basic。NETのListViewコントロールの並べ替えデータが表示されます。 以前のプロジェクトの順序であるかを選択する2つのボタンを追加します.....
OK、大丈夫です、が...これは単なる昇順上下に注文してするために、列ヘッダーのクリックを与える?
こんにちはローラ:
降順で名前で注文するだけでクラスOrdenarPorNombreで返される変数を逆にする必要があります...あなたは変更する必要があります。
String.Compare(item1.Text、item2.Text)を返す
このために:
String.Compare(item2.Text、item1.Text)を返す
と数値順の場合にこれを変更、ordenarPorTamañoケースによって返された符号を逆にする必要があります。
Math.Signリターン((item1.SubItems(1)CLngテキスト) - CLng(item2.SubItems(1)テキスト)。)
このために:
CLng(。item2.SubItems(1)テキスト))* -1) - ()CLng(。item1.SubItems(1)テキスト)Math.Signを返します。
私は別の記事を捧げたいと思うので、最終的にリストビューのクリック列を与えるために、ここでコメントしていないことを伝える。
挨拶、エリシャ
日付と日付の降順のいずれかのフィールドでご注文として、例えば、作成されます。
次のクラスを追加して、必要なボタンに割り当てることができます。
クラスordenarPorFechaCreacion
IComparerを実装してい
パブリック関数は、(オブジェクトとしてByVal Xは、オブジェクトとしてByVal y)は_を比較
整数System.Collections.IComparer.Compareを実装して
ListViewItemのように薄暗いITEM1 = Cタイプ(Xは、ListViewItem)
して、ListViewItem = Cタイプ(Yは、ListViewItem)として薄暗い項目2
(Date.parse(item1.SubItems(2)テキスト)、Date.parse(item2.SubItems(2)テキスト))Date.Compareを返します。
エンド機能
エンドクラス
人にはサインインしてください。
C#で同じ順序のための文でしょうか?
[...] [...]
dobry開始
ケースで私はリストを持っている場合
23 = 5 +5 13
5 = 1 +1 +1 +2
4 = 3 +1
など.....
私は結果が私は231 = 100 100 31 23 = 5 +5 13の後に置くのされなかった場合の数字でそれを注文するように私は行うことができます
良い午後、
ご迷惑をおかけしますが、一度に2つのカラムでソートすることができます方法を知っているのだろうか? このような何か:
XYZ
ABA - > 1
BAA - > 2
> 3 - bに
左:
XYZ
> 3 - bに
ABA - > 1
BAA - > 2
あなたは、また私には有用であった同じ情報を転記するためのおかげで助けとならなかった場合は、スーパー感謝しています。
そして、あなたがデートしたい場合..... これは、作成日だけでなくです。