> DataRowComparerは定義されていますか 私なりに検索してみて Public NotInheritable Class DataRowComparer End Class という風にしてみました。 とりあえずエラーは消えたみたいですけど。 >また、directionという変数は宣言されていますか? こちらも手探りですが Imports System.ComponentModel で Public Overridable Sub Sort(ByVal ColumnIndex As DataGridViewColumn, ByVal direction As ListSortDirection) End Sub さらに Dim direction As ListSortDirection としました。
これまでのエラー箇所は消えましたが 新たに ColumnIndex, direction の部分に Public Sub New()'に対しての引数が多すぎます。 とエラーが出てしまいました。
Public Class DataRowComparer Implements IComparer Private direction As ListSortDirection Private columnIndex As Integer
Public Sub New(columnIndex As Integer, direction As ListSortDirection) Me.columnIndex = columnIndex Me.direction = direction End Sub
Public Function Compare(x As Object, y As Object) As Integer Dim obj1 As DataRow = CType(x, DataRow) Dim obj2 As DataRow = CType(y, DataRow) Return String.Compare(obj1(columnIndex).ToString(), obj2(columnIndex).ToString()) *(If direction = ListSortDirection.Ascending Then 1 Else - 1) End Function End Class
この部分でしょうか? しかし、 *(If direction = ListSortDirection.Ascending Then 1 Else - 1) の Ifには 『'if' 演算子には2つまたは3つのオペランドが必要です。』 directionには 『'('が必要です。』 といったエラーが出てしまいました。 '('に関してはいろいろと試してみましたがエラーは消えませんでした。
魔界の仮面弁士さん、ありがとうございます。 ご指摘どおりでした。 Public Class DataRowComparer Implements IComparer Private direction As ListSortDirection Private columnIndex As Integer Public Sub New(ByVal columnIndex As Integer, ByVal direction As ListSortDirection) Me.columnIndex = columnIndex Me.direction = direction End Sub Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare Dim obj1 As DataRow = CType(x, DataRow) Dim obj2 As DataRow = CType(y, DataRow) Return String.Compare(obj1(columnIndex).ToString(), obj2(columnIndex).ToString()) * If(direction = ListSortDirection.Ascending, 1, -1) End Function End Class でエラーは消え、OutlookGridに求める動作をしてくれました。 ただ、折りたたんだり開いたりするときのアイコン、 「+」や「-」が表示されませんでした。 プロパティやForm1を見てみましたが それらしき設定可能な箇所を見つけることができませんで。
分類:[.NET]
お世話になります。
http://dobon.net/vb/dotnet/datagridview/grouping.html
のoutlookgridをvb2008にて使用したいと考えているのですが
使い方がわかりません。
ダウンロードしたフォルダを何処に置くのか、
など詳しく教えていただけないでしょうか。
よろしくお願いします。