簡體   English   中英

ContextMenu與ContextMenuStrip的位置

[英]Position of ContextMenu vs ContextMenuStrip

我試圖將第一個ContextMenuStrip添加到應用程序中,作為菜單。 但是,只有ContextMenu出現在應用程序窗口的邊界內,ContextMenuStrips出現在應用程序窗口的外部。

我已經開始維護的該應用程序是一種類似於Windows任務欄的擴展塢或工具欄。 它占用了屏幕的邊緣,而其他窗口無法在其上方顯示或最大化。 該應用程序當前在屏幕頂部運行,並且ContextMenuStrips水平顯示在正確的坐標上,但垂直顯示錯誤地顯示在應用程序窗口的底部。

(我是維護該應用程序的新手,所以我不確定它如何控制其他窗口如何以與任務欄相同的方式在其上顯示或最大化。)

用圖片進行編輯以澄清; 紫色線是監視器的邊界,淺藍色框是行為類似於Windows任務欄的應用程序的邊界,深藍色框是我們要單擊以使菜單出現的按鈕的邊界,綠色框是該按鈕的ContextMenu的界限(如預期的那樣),問題是橙色框是ContextMenuStrip的界限(出現在應有的下方)。 我希望橙色框出現在與綠色框相同的位置。

在此處輸入圖片說明

如何創建ContextMenuStrip以及如何顯示?

本示例使用動態創建的ContextMenuStrip ,它對我有用:

ContextMenuStrip cms = new ContextMenuStrip();

private void button4_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Right)
    {
        cms.Items.Add("Test Menu");
        cms.Show(button4.PointToScreen(e.Location));
    }
}

但是,動態創建應該無關緊要。

但是,也許您提到的對接會干擾? 如何實施?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM