VB.NETでのListViewについての質問です。
ListView1.View = View.Details
ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable
ListView1.AllowColumnReorder = True
ListView1.MultiSelect = False
ListView1.Columns.Add("Main", 100, HorizontalAlignment.Left)
ListView1.Columns.Add("Sub", 100, HorizontalAlignment.Left)
ListView1.Items.Add("あいうえお").SubItems.Add("かきくけこ")
としたとき、プログラムを実行してマウスで直接2列目を1列目に移動した場合は、
項目を選択すると2列目の「あいうえお」が選択されますが、
プログラムによって最初からその状態になるようにするにはどのようにプログラムをくめばいいのでしょうか?
現行バージョンだと、APIが必要かな…。
Private Declare Auto Function SendMessage Lib "user32"( _
ByVal hWnd As IntPtr, ByVal msg As Integer, _
ByVal wParam As Integer, ByVal lParam() As Integer) As Integer
Private Const LVM_SETCOLUMNORDERARRAY As Integer = &H1000 + 58
'列順を表す配列。2列の時の初期状態は{0, 1}。
Dim Order() As Integer = {1, 0}
'並び替え実行
SendMessage(ListView1.Handle, LVM_SETCOLUMNORDERARRAY, Order.Length, Order)
ListView1.Refresh()
さっそくのご解答ありがとうございます。
おかげさまで無事解決できました。
どうもありがとうございました。
ツイート | ![]() |