所以我有一个带有ListView的C#.Net Compact Framework 3.5应用程序。 ListView应该是MultiSelect(通过在文件资源管理器中拖动它们一次选择多行)。
因为没有直接的属性,我向ListView发送了一个样式消息,我用它来取消设置LVS_SINGLESEL。在我的代码中,它看起来像这样:
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)的两个不同设备上尝试了它们,它们的行为都相同。
我有什么遗失的吗?或者.Net Compact Framework无法实现这一点吗?