1

そのため、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 では不可能ですか?

4

0 に答える 0