我想在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