私はリストビュー項目の内部を意味するのではなく、列のサイズを変更できる列見出しを意味します。ユーザーが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);
}
}
および使用
0
myListView1.ColumnContextMenuClicked += (sndr, col) =>
{
this.Text = col.Text;
};
をオーバーライドOnMouseEnter /脱退溶液は、ヘッダに時々コンテキストメニューをさえない示します。ここには良い解決策がありますListView ContextMenuStrip for column headers
+0
もう少し詳しく、[このような重複した質問にフラグを立てることができる](https://stackoverflow.com/privileges/comment)。それまでは、回答としてのリンクの投稿は理想的ではなく、一般的に削除されます。または、質問が重複でない場合は、*この特定の質問への回答を調整します*。 –
関連する問題
- 1. どのヘッダー列がListViewで右クリックされているかを知るには?
- 2. ListViewでクリックしたヘッダーの列を判別しますか?
- 3. マウスから左クリックを検出できますか?またはCtrl +右クリック?
- 4. ユーザーがキャンバス内の円をクリックしたかどうかを検出する
- 5. タブのヘッダーを検出(右クリック)
- 6. ユーザーが円内をクリックしたかどうかを検出する
- 7. ユーザーが「戻る」ボタンをクリックしたかどうかを検出する - モバイルブラウザ
- 8. UWPのListViewで左/右クリックのイベントターゲットを検出するにはどうすればよいですか?
- 9. ユーザーがファイルをダウンロードしたかどうかを検出する
- 10. Googleでログイン - ユーザーがトリガーしたかどうかを検出
- 11. TreeViewユーザーが親ノードまたは子ノードをクリックしたかどうかを検出します
- 12. ユーザーがタスクバーのプログラムをクリックしたときにイベントを検出しますか?
- 13. ユーザーがApple TVのリモコンの右側または左側をクリックしたかどうかを検出する方法はありますか?
- 14. PyQt-どの列が右クリックを受け取りましたか?
- 15. ユーザーがListViewでアイテムを選択したかどうかを検出する方法は?
- 16. Winforms内のDataGridView列ヘッダーの右揃え
- 17. ソケットIOは、ユーザーが退室したかどうかを検出します。
- 18. ユーザーがAPNSフィードバックを通じてデバイスを消去したかどうかを検出できますか?
- 19. 右クリックブラウザのコンテキストメニューで左クリックを検出することはできますか?
- 20. WinForms ListBox右クリック
- 21. ユーザーがtrueまたはfalseをクリックしたかどうかをテストします。
- 22. どのListViewが右クリックされたかを特定する方法は?
- 23. Update_allが成功したかどうかを検出できますか?
- 24. ユーザーがAndroidで評価したかどうかを検出する
- 25. 要素のブラウザコンテキストメニューをどのようにトリガーしますか? (ユーザーが右クリックしたように)
- 26. ユーザーが自分のノードプロファイルを作成したかどうかを検出する
- 27. ユーザがポップアップ内の要素をクリックしたかどうかを検出
- 28. iOS5では、ユーザーがアプリのバックアップを設定しているかどうかを検出できますか?
- 29. ユーザーがホーム画面に追加をクリックしたかどうかを検出する
- 30. RichEditableTextの右クリックを検出
ありがとう、それは動作します。私は20時間以内にポイントを獲得することしかできないと私に伝えています。そうするでしょう。 –
技術的には「UserControl」ではなく、私は... –
@EdS:それはどういう意味ですか?私はそれがリストビューを継承するカスタムコントロールだと思ったのですが? –