我不是指列表視圖項的內部,而是允許您調整列大小的列標題。我可以檢測用戶是否在Winforms中右鍵單擊ListView列標題?
3
A
回答
6
一個簡單的用戶控件重寫ListView
的OnMouseEnter
OnMouseLeave
& WndProc
public partial class MyListView : ListView
{
public MyListView()
{
}
public delegate void ColumnContextMenuHandler(object sender, ColumnHeader columnHeader);
public event ColumnContextMenuHandler ColumnContextMenuClicked = null;
bool _OnItemsArea = false;
protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
_OnItemsArea = true;
}
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
_OnItemsArea = false;
}
const int WM_CONTEXTMENU = 0x007B;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_CONTEXTMENU)
{
if (!_OnItemsArea)
{
Point p = base.PointToClient(MousePosition);
int totalWidth = 0;
foreach (ColumnHeader column in base.Columns)
{
totalWidth += column.Width;
if (p.X < totalWidth)
{
if (ColumnContextMenuClicked != null) ColumnContextMenuClicked(this, column);
break;
}
}
}
}
base.WndProc(ref m);
}
}
和使用
myListView1.ColumnContextMenuClicked += (sndr, col) =>
{
this.Text = col.Text;
};
0
的OnMouseEnter在/離開溶液顯示的上下文菜單有時甚至不能在報頭中。這裏是更好的解決方案ListView ContextMenuStrip for column headers
+0
有了更多的代表,[你將能夠標記像這樣的重複問題](https://stackoverflow.com/privileges/comment)。在此之前,將鏈接發佈爲答案並不是很理想,並且通常會被刪除。或者,如果問題不是重複的,*定製這個特定問題的答案*。 –
相關問題
- 1. 我可以檢測鼠標左鍵嗎?或Ctrl +右鍵點擊?
- 2. AS2:右鍵單擊檢測
- 3. 我們是否可以禁用右鍵單擊HTML中的定位標記
- 4. QTableWidget右鍵單擊獲取標題列
- 5. wpf listview右鍵單擊問題
- 6. 是否有可能檢測到右鍵單擊瀏覽器上下文菜單上的左鍵單擊?
- 7. winforms下的右鍵單擊菜單
- 8. 在WInforms上禁用鼠標右鍵單擊
- 9. Visual C++檢測右鍵單擊按鈕
- 10. Flot - 檢測左鍵單擊並右鍵單擊
- 11. 檢測從類選擇器中單擊鼠標右鍵?
- 12. 是否可以在Flash中顯示自定義右鍵單擊菜單
- 13. 檢測右鍵點擊RichEditableText
- 14. 檢測所選元素是否是右鍵點擊的錨點
- 15. 我無法檢測Visual Studio 2015中的右鍵單擊事件
- 16. WinForms列表框右鍵點擊
- 17. 如何確定在可繪製圖表中是否單擊鼠標右鍵?
- 18. 是否可以右鍵單擊表單元素以打開新頁面?
- 19. cocos2d OS X:如何檢測鼠標右鍵單擊?
- 20. 是否可以禁用右鍵點擊iframe?
- 21. 無法檢測MVVM列表框上的右鍵單擊
- 22. JQuery右鍵單擊問題
- 23. 右鍵單擊檢測JavaScript中的SVG形狀不起作用
- 24. 如何在Visual Studio中檢測右鍵單擊事件?
- 25. 我想在鼠標移動事件中檢測鼠標右鍵或鼠標鍵是否關閉
- 26. 檢測在文本內右鍵單擊哪個單詞
- 27. 用戶界面自動化測試右鍵單擊菜單
- 28. 在Carrierwave + S3 + Heroku + Content-Disposition中用戶右鍵單擊+保存之前是否可以重命名文件名?
- 29. 是否可以在純CSS中檢測Firefox用戶?
- 30. 如何在CodedUI測試中模擬鼠標右鍵單擊
謝謝,它的工作原理。它告訴我,我只能在20小時內獎勵積分。那麼會那麼做。 –
不是技術上的'UserControl',而是meh ... –
@EdS .:這是什麼意思?我認爲這是一個繼承自ListView的自定義控件,不是嗎? –