Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
DataGridViewで自然順ソート
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30607#CommentId84495
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
たなやん
 (社会人)
投稿日時
2021/6/4 14:57:29
お返事ありがとうございます。
ヘッダーをクリックした時にSortCompareイベントでソートを行う動作を設定できる事を理解出来ました。
紹介頂いたStrCmpLogicalW APIを利用してソートを行うのが簡単そうなので、これを利用しようとしてみましたが正しい並び替えになりませんでした。
APIの呼び出し方が間違っているのでしょうか?
また降順にしたい時はAPIの呼び出しにオプション引数等が必要なのでしょうか?
[code]
Private Sub DataGridView1_SortCompare(ByVal sender As Object, ByVal e As DataGridViewSortCompareEventArgs) Handles DataGridView1.SortCompare
DataGridView1.Sort(New LogicalStringComparer())
e.Handled = True
End Sub
Public Class LogicalStringComparer
Implements System.Collections.IComparer
Implements System.Collections.Generic.IComparer(Of String)
<System.Runtime.InteropServices.DllImport("shlwapi.dll",
CharSet:=System.Runtime.InteropServices.CharSet.Unicode,
ExactSpelling:=True)>
Private Shared Function StrCmpLogicalW(x As String, y As String) As Integer
End Function
Public Function Compare(x As String, y As String) As Integer _
Implements System.Collections.Generic.IComparer(Of String).Compare
Return StrCmpLogicalW(x, y)
End Function
Public Function Compare(x As Object, y As Object) As Integer _
Implements System.Collections.IComparer.Compare
Return Me.Compare(x.ToString(), y.ToString())
End Function
End Class
[/code]