そのため、ListView を含む C# .Net Compact Framework 3.5 アプリケーションがあります。その ListView は MultiSelect である必要があります (ファイル エクスプローラーのように複数の行をドラッグして一度に選択します)。
そのための直接のプロパティがないため、LVS_SINGLESEL を設定解除した ListView にスタイル メッセージを送信します。私のコードでは、次のようになります。
public const int GWL_STYLE = -16;
public const int LVS_SINGLESEL = 0x0004;
[DllImport("coredll")]
public static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("coredll")]
public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
public static void EnableLVMultiSelect(System.Windows.Forms.ListView lv)
{
int style = GetWindowLong(lv.Handle, GWL_STYLE);
SetWindowLong(lv.Handle, GWL_STYLE, (style & ~LVS_SINGLESEL));
}
このコードが現在行っていることは、最後の行の後に開始すると、複数の行を選択できるということです。しかし、ファイル エクスプローラーのように 10 行のうち 2、3、4 行を選択することはできません。異なる Windows Mobile バージョン (5.0 と 6.5) の 2 つの異なるデバイスで試してみましたが、どちらも同じように動作しました。
足りないものはありますか?または、これは .Net Compact Framework では不可能ですか?