C#でSendMessageを使用してListViewのアイテムを選択する方法で悩んでいます。
[StructLayout( LayoutKind.Sequential, CharSet = CharSet.Auto )]
public struct LVITEM {
public uint mask;
public int iItem;
public int iSubItem;
public uint state;
public uint stateMask;
public IntPtr pszText;
public int cchTextMax;
public int iImage;
public int lParam;
public int iIndent;
// (_WIN32_WINNT >= 0x501)
public int iGroupId;
public uint cColumns;
public IntPtr puColumns;
}
・・・・
public void HogeHoge() {
LVITEM lvi = new LVITEM();
lvi.state = LVIS_FOCUSED | LVIS_SELECTED;
lvi.stateMask = 0x000F;
SendMessage( hLV, LVM_SETITEMSTATE, 0, ref lvi );
}
LVM_SETITEMSTATEでは選択できないのでしょうか?
OSはXPです。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは。
当方はwindows2000です。試して見ましたが、選択出来ました。
もしかして、フラグの数字を誤っているのかもしれません。
一応乗せて置きますので、参考程度に。
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct LVITEM
{
public uint mask;
public int iItem;
public int iSubItem;
public uint state;
public uint stateMask;
public IntPtr pszText;
public int cchTextMax;
public int iImage;
public int lParam;
public int iIndent;
// (_WIN32_WINNT >= 0x501)
public int iGroupId;
public uint cColumns;
public IntPtr puColumns;
}
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public extern static Int32 SendMessage(IntPtr hWnd, UInt32 uMsg, UInt32 wParam, ref LVITEM lParam);
public const int LVIF_TEXT = 0x0001;
public const int LVIF_IMAGE = 0x0002;
public const int LVIF_PARAM = 0x0004;
public const int LVIF_STATE = 0x0008;
//(_WIN32_IE >= 0x0300)
public const int LVIF_INDENT = 0x0010;
public const int LVIF_NORECOMPUTE = 0x0800;
public const int LVIS_FOCUSED = 0x0001;
public const int LVIS_SELECTED = 0x0002;
public const int LVIS_CUT = 0x0004;
public const int LVIS_DROPHILITED = 0x0008;
public const int LVIS_ACTIVATING = 0x0020;
public const int LVIS_OVERLAYMASK = 0x0F00;
public const int LVIS_STATEIMAGEMASK = 0xF000;
public const int LVM_FIRST = 0x1000;
public const int LVM_SETITEMSTATE = LVM_FIRST + 43;
public void HogeHoge()
{
IntPtr hLV = listView1.Handle;
LVITEM lvi = new LVITEM();
lvi.state = LVIS_FOCUSED | LVIS_SELECTED;
lvi.stateMask = 0x000F;
SendMessage(hLV, LVM_SETITEMSTATE, 0, ref lvi);
}
この回答への補足
エクスプローラのListViewのアイテムを選択したいのですが
LVM_SETITEMSTATEを送るとComctl32.dllでエラーが発生します
ご解答ありがとうございます
フラグ値は合ってます
いろいろ、やってみたのですがうまく行きません
エクスプローラのListViewのアイテムを選択したいのですが・・・
LVM_SETITEMSTATEでListViewのアイテムを選択するには?(2)としてソースコードを投稿いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java java final 1 2022/06/10 22:49
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
SendMessageが失敗するときがある
C言語・C++・C#
-
既存のアプリのsyslistview32から文字列取得
Visual Basic(VBA)
-
リストビューのハンドルについて
C言語・C++・C#
-
-
4
リストビューの選択状態を取得するメッセージはありますか?
C言語・C++・C#
-
5
Alt+P,Alt+NをPostmessageで送るには
Visual Basic(VBA)
-
6
他アプリの操作(メニューバー)
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
エンターキーを押すとOKボタン...
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
Thread.sleepのInterruptedExce...
-
C# 親フォームで指定した値を...
-
Processingでマウスクリックで...
-
C#でキーイベントが発生しない...
-
C# DataGridView列カスタマイズ
-
C# 矢印キーの取得
-
C#で別のFormへ複数の値を返そ...
-
自作ウィンドウを閉じる方法に...
-
C# バイナリダンプを構造体に簡...
-
ボタンの複数割り当てについて
-
jCheckBoxの動作について。
-
C#でのWNetAddConnection3の使...
-
JSPやサーブレットでSystem.out...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
配列にnullを代入すると、null...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
ボタンの複数割り当てについて
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
C# 矢印キーの取得
-
Thread.sleepのInterruptedExce...
-
unityでのC++エラーの原因がわ...
-
C#で別のFormへ複数の値を返そ...
-
C# visibleプロパティをfalseに...
-
エンターキーを押すとOKボタン...
-
Processingでマウスクリックで...
-
[C#.net]スレッド化された別フ...
-
C#でキーイベントが発生しない...
-
C# DataGridView列カスタマイズ
-
【C#】ソースコードをファイル...
-
LVM_SETITEMSTATEでListViewの...
-
GetDIBits関数の使い方について
-
未割り当てのローカル変数
-
C# MouseHoverを何度も呼ぶには
おすすめ情報