1

なぜああ、なぜこれがうまくいかないのですか?MSDN で見つけましたが、例外がスローされます。Unable to cast object of type 'OutlookTemplates.com.NodeSorter' to type 'System.Collections.IComparer'.

Public Class NodeSorter
Implements IComparer(Of Windows.Forms.TreeNode)

Public Function Compare(ByVal x As Windows.Forms.TreeNode, ByVal y As Windows.Forms.TreeNode) _
    As Integer Implements IComparer(Of Windows.Forms.TreeNode).Compare
    Dim tx As Windows.Forms.TreeNode = CType(x, Windows.Forms.TreeNode)
    Dim ty As Windows.Forms.TreeNode = CType(y, Windows.Forms.TreeNode)

    If tx.Text.Length <> ty.Text.Length Then
        Return tx.Text.Length - ty.Text.Length
    End If
    Return String.Compare(tx.Text, ty.Text)

End Function
End Class

....

 tv.TreeViewNodeSorter = New NodeSorter()
 tv.Sort()
4

1 に答える 1

3

非ジェネリック IComparerインターフェイスを実装する必要があります。
TreeViewジェネリックよりも古いため)

于 2013-09-13T13:44:13.033 に答える