列 Visual Basic では、ListView コントロールを並べ替える方法します。NET または Visual Basic 2005

文書翻訳 文書翻訳
文書番号: 319399
マイクロソフト ビジュアルを C#。このバージョン記事は、 319401.
この Microsoft Visual Basic 6.0 バージョン記事は、 170884.
すべて展開する | すべて折りたたむ

目次

概要

この資料でを並べ替える方法について説明します。 リスト ビュー Visual Basic 列を制御します。NET または Visual Basic 2005年のアプリケーションです。

作業時に、 リスト ビュー コントロール ベースの特定の内容をソートすることができます。列です。この種の機能の例としては、Windows エクスプ ローラーでが発生します。ハード_ディスク上のフォルダーの内容を表示する場合のプログラムです。詳細にビューでは、Windows エクスプ ローラー フォルダー内のファイルに関する情報が表示されます。の例は、確認ファイル名、ファイル サイズ、ファイルの種類、および日付にファイルが変更されました。列ヘッダーのいずれかをクリックすると、一覧にあります。その列に基づいて昇順で並べ替えします。同じ列をクリックすると、もう一度、ヘッダー、列は降順で並べ替えられます。

使用例この資料でを実装するクラスを定義する、 IComparer インターフェイスです。また、この例を使用して、 比較 メソッドは、 CaseInsenstiveComparer 項目の実際の比較を実行するのには、[クラス] をクリックします。注意してください。このメソッドの比較は大文字小文字を区別ではありません ("Apple"が考慮するには同じ"apple")。また、この例では、列のすべてであるに注意してください。"text"のように並べ替え。(など、さまざまな方法での並べ替えを行う場合数値)、次のコード行のいずれかを置き換えることができます。使用するソート方法:
compareResult = ObjectCompare.Compare(listviewX.SubItems(ColumnToSort).Text, listviewY.SubItems(ColumnToSort).Text)
				

サンプル プロジェクトをビルドする方法

  1. 新しい Visual Basic を作成します。NET または Visual Basic 2005年の Windows アプリケーション プロジェクトです。デフォルトで Form1 が作成されます。

    メモ Visual Basic 2005年でこのコードを変更する必要があります。Windows フォーム プロジェクトを作成すると既定では、2 つのファイルは、プロジェクトの Visual Basic を作成します。フォームが Form1 という名前の場合は、フォームを表す 2 つのファイルの名前は Form1.vb と Form1.Designer.vb にです。Form1.vb ファイルにコードを記述します。Windows フォーム デザイナー、Form1.Designer.vb ファイルにコードを書き込みます。Windows フォーム デザイナーは、partial キーワードを使用して Form1 の実装を次の 2 つの別々 のファイルに分割します。この現象、デザイナー生成コードがコードに混入されるできなくなります。

    新しい Visual Basic 2005年の言語拡張機能の詳細については、次のマイクロソフト開発ネットワーク (MSDN) Web サイトを参照してください。
    .aspx の http://msdn2.microsoft.com/en-us/library/ms379584 (vs.80)
    部分クラスおよび Windows フォーム デザイナーの詳細については、次の MSDN Web サイトを参照してください。
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  2. 追加します。 リスト ビュー Form1 に制御します。いくつかインチで幅に、フォームをサイズします。数センチの高さ。
  3. フォームのクラスには、次のコードを貼り付けます。
    Private lvwColumnSorter As ListViewColumnSorter
    					
  4. フォームのコンス トラクターに次のコードを貼り付け、呼び出しの後、 InitializeComponent 方法:
    ' Create an instance of a ListView column sorter and assign it 
    ' to the ListView control.
    lvwColumnSorter = New ListViewColumnSorter()
    Me.ListView1.ListViewItemSorter = lvwColumnSorter
    					
  5. 次のコードに貼り付けます、 ロード フォームのイベント:
    Dim columnheader As ColumnHeader    ' Used for creating column headers.
    Dim listviewitem As ListViewItem    ' Used for creating ListView items.
    
    ' Make sure that the view is set to show details.
    ListView1.View = View.Details
    
    ' Create some ListView items consisting of first and last names.
    listviewitem = New ListViewItem("Mike")
    listviewitem.SubItems.Add("Nash")
    Me.ListView1.Items.Add(listviewitem)
    
    listviewitem = New ListViewItem("Kim")
    listviewitem.SubItems.Add("Abercrombie")
    Me.ListView1.Items.Add(listviewitem)
    
    listviewitem = New ListViewItem("Sunil")
    listviewitem.SubItems.Add("Koduri")
    Me.ListView1.Items.Add(listviewitem)
    
    listviewitem = New ListViewItem("Birgit")
    listviewitem.SubItems.Add("Seidl")
    Me.ListView1.Items.Add(listviewitem)
    
    ' Create some column headers for the data.
    columnheader = New ColumnHeader()
    columnheader.Text = "First Name"
    Me.ListView1.Columns.Add(columnheader)
    
    columnheader = New ColumnHeader()
    columnheader.Text = "Last Name"
    Me.ListView1.Columns.Add(columnheader)
    
    ' Loop through and size each column header to fit the column header text.
    For Each columnheader In Me.ListView1.Columns
        columnheader.Width = -2
    Next
    					
  6. 次のコードに貼り付けます、 クリックします イベントは、 リスト ビュー:
    ' Determine if the clicked column is already the column that is 
    ' being sorted.
    If (e.Column = lvwColumnSorter.SortColumn) Then
        ' Reverse the current sort direction for this column.
        If (lvwColumnSorter.Order = SortOrder.Ascending) Then
            lvwColumnSorter.Order = SortOrder.Descending
        Else
            lvwColumnSorter.Order = SortOrder.Ascending
        End If
    Else
        ' Set the column number that is to be sorted; default to ascending.
        lvwColumnSorter.SortColumn = e.Column
        lvwColumnSorter.Order = SortOrder.Ascending
    End If
    
    ' Perform the sort with these new sort options.
    Me.ListView1.Sort()
    					
  7. で、 プロジェクト メニューをクリックして クラスを追加します。 プロジェクトに新しいクラスを追加します。
  8. すべてのデフォルトのコードを新しいクラスに置き換え、次のコード:
    Imports System.Collections
    Imports System.Windows.Forms
    
    Public Class ListViewColumnSorter
        Implements System.Collections.IComparer
    
        Private ColumnToSort As Integer
        Private OrderOfSort As SortOrder
        Private ObjectCompare As CaseInsensitiveComparer
    
        Public Sub New()
            ' Initialize the column to '0'.
            ColumnToSort = 0
    
            ' Initialize the sort order to 'none'.
            OrderOfSort = SortOrder.None
    
            ' Initialize the CaseInsensitiveComparer object.
            ObjectCompare = New CaseInsensitiveComparer()
        End Sub
    
        Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
            Dim compareResult As Integer
            Dim listviewX As ListViewItem
            Dim listviewY As ListViewItem
    
            ' Cast the objects to be compared to ListViewItem objects.
            listviewX = CType(x, ListViewItem)
            listviewY = CType(y, ListViewItem)
    
            ' Compare the two items.
            compareResult = ObjectCompare.Compare(listviewX.SubItems(ColumnToSort).Text, listviewY.SubItems(ColumnToSort).Text)
    
            ' Calculate the correct return value based on the object 
            ' comparison.
            If (OrderOfSort = SortOrder.Ascending) Then
                ' Ascending sort is selected, return typical result of 
                ' compare operation.
                Return compareResult
            ElseIf (OrderOfSort = SortOrder.Descending) Then
                ' Descending sort is selected, return negative result of 
                ' compare operation.
                Return (-compareResult)
            Else
                ' Return '0' to indicate that they are equal.
                Return 0
            End If
        End Function
    
        Public Property SortColumn() As Integer
            Set(ByVal Value As Integer)
                ColumnToSort = Value
            End Set
    
            Get
                Return ColumnToSort
            End Get
        End Property
    
        Public Property Order() As SortOrder
            Set(ByVal Value As SortOrder)
                OrderOfSort = Value
            End Set
    
            Get
                Return OrderOfSort
            End Get
        End Property
    End Class
    					
  9. 保存して、構築、および、サンプル プロジェクトを実行します。
  10. さまざまな列ヘッダーをクリックして、 リスト ビュー コントロールです。ヘッダーの内容をクリックすると、 リスト ビュー コントロールは、列に基づいて昇順で並べ替えられますがクリックします。もう一度同じ列見出しをクリックすると、その列が並べ替えられます降順で。

プロパティ

文書番号: 319399 - 最終更新日: 2011年7月27日 - リビジョン: 5.0
キーワード:?
kbhowtomaster kbvs2005applies kbvs2005swept kbmt KB319399 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:319399
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com