
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
C# visibleプロパティをfalseに...
-
C#でのWNetAddConnection3の使...
-
JSPファイルから、ActionFormの...
-
C#から、C++で作成したdll内の...
-
C# 矢印キーの取得
-
C#で別のFormへ複数の値を返そ...
-
クリックして頂点を線で結ぶ
-
C# タスクバーを隠したフォーム...
-
C# WinForm のDataGridView Cel...
-
IF関数でEmpty値を設定する方法。
-
オブジェクトの中のプロパティ...
-
動的配列が存在(要素が有る)か...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
javaです。 途中まで出来ている...
-
flush()とclose()について
-
ループ処理の際、最後だけ","を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
ボタンの複数割り当てについて
-
コンボボックスを使う時の警告
-
C# DataGridView列カスタマイズ
-
Junitテストでvoid戻り値メッソ...
-
C# 矢印キーの取得
-
C# WinForm のDataGridView Cel...
-
C#でのWNetAddConnection3の使...
-
C# visibleプロパティをfalseに...
-
GOF本のStrategyのJava版での質...
-
イメージボタンを作成したいの...
-
以下のコードのどこが問題なの...
-
Androidでこのエラーを解決した...
-
C#で、定数をフラグ(if文)に...
-
C# 親フォームで指定した値を...
-
Javaでウィンドウ作成について
-
負の数を取得するには?
-
Windowsのリソース作成について
-
javaの同期について
おすすめ情報