我想在ListView上选择一个项目,当用户点击一个没有项目的空间时。例如,项目下方的空间,但仍在ListView组件上。我已将ListView属性“HideSelection”更改为false,但仅当焦点更改为其他组件时才起作用;而不是当用户点击ListView本身时。谢谢!如何选择一个项目? - ListView
1
A
回答
5
这是您通常不应该修复的内容。用户故意点击某处,这可能是因为她想要取消选择一个项目。如果这是无意的,那么她会理解发生的事情并知道如何纠正它。给予标准控制非标准行为往往只会混淆用户。
但你可以修复它。您需要防止本机ListView控件看到点击。这需要重写WndProc()方法并检查点击发生的位置。为您的项目添加一个新类并粘贴下面显示的代码。编译。将新的控件从工具箱的顶部拖放到窗体上。
using System;
using System.Drawing;
using System.Windows.Forms;
class MyListView : ListView {
protected override void WndProc(ref Message m) {
if (m.Msg == 0x201 || m.Msg == 0x203) { // Trap WM_LBUTTONDOWN + double click
var pos = new Point(m.LParam.ToInt32());
var loc = this.HitTest(pos);
switch (loc.Location) {
case ListViewHitTestLocations.None:
case ListViewHitTestLocations.AboveClientArea:
case ListViewHitTestLocations.BelowClientArea:
case ListViewHitTestLocations.LeftOfClientArea:
case ListViewHitTestLocations.RightOfClientArea:
return; // Don't let the native control see it
}
}
base.WndProc(ref m);
}
}
0
一种方法:在SelectedIndexChanged事件中,检查值是否为-1;如果是这样,请将其重置为先前的值(您可能将其存储在变量中)。
+0
你知道我该如何得到索引吗? – 2010-03-27 15:30:33
相关问题
- 1. Android ListView:如何选择一个项目?
- 2. 选择ListView项目
- 3. 如何从ListView中选择项目?
- 4. 如何选择所有的listview项目?
- 5. 如何只选择一个项目时触发事件(ListView)?
- 6. 如何为listview项目创建一个真正的选择器?
- 7. 如何从android的listview中选择一个特定的项目?
- 8. listview已选择项目
- 9. 选择Kendo UI ListView项目
- 10. JavaFX ListView项目选择
- 11. android在ListView中选择多个项目?
- 12. 在ListView Android中选择多个项目
- 13. 如何选择只有一个项目时选择多个项目
- 14. 如何从ListView和显示中选择单个项目的另一项活动
- 15. ListView页脚仅在选择listview项目后才可选择
- 16. ListView选择多个然后一个项目
- 17. ListView ItemClickListener选择几个项目时,我点击一个
- 18. Android Listview单一选择保持项目选择
- 19. 如何从Robotium的listview中选择两个项目?
- 20. 如何在asp.net mvc中选择一个选择列表项目?
- 21. 如何选择另一个项目时运行项目?
- 22. 如何专注于目前在Listview中选择的项目android
- 23. 如何使listview选择的项目可选?
- 24. Android ListView滚动以选择一个项目?
- 25. 在Cursor Loader中选择ListView中的第一个项目
- 26. 如何从ListView中选择一个项目,看到SQLite数据库
- 27. 如何确保用户在ListView中至少选择了一个项目?
- 28. android:如何查看我在ListView上选择的项目(多于一个)
- 29. Android ListView取消选择项目
- 30. 更改ListView选择的项目
哇。这很好!只是一件事,有没有办法修改该代码,所以它也适用于右键单击?非常感谢! – 2010-03-27 15:44:43
右键单击是0x202。它应该显示一个上下文菜单... – 2010-03-27 15:47:46