簡體   English   中英

相對於父級的ToolStripMenuItem位置

[英]ToolStripMenuItem location relative to parent

我正在嘗試提取ToolStripMenuItem的位置相對於其父項的位置的左上坐標,因為它在屏幕上呈現。 有一個具有Location成員的Bounds屬性,但它返回有關其實際位置的荒謬(至少從我的角度來看)信息。

“ Click”事件處理程序如下所示:

private void newShapeOption_Click(object sender, EventArgs e)
{
    ToolStripMenuItem item = sender as ToolStripMenuItem;
    Point point = item.Bounds.Location; // returns {X = 0, Y = 2} every time for some reason
    // the rest is unimportant 
}

圖像上的紅點(Paint skillz;)顯示了我想使用的確切位置(父級是名為“ Window 0”的Form控件-它是MDI應用程序):

例

上下文菜單不了解單擊對象的物理位置。 那是對象本身的OnClick事件的省份。 因此,如果您希望上下文菜單可以訪問單擊坐標,則必須鈎住被單擊對象的OnClick事件,在某些表單全局變量中捕獲單擊的坐標,然后在ContextMenu_Click使用這些值事件。

您可以使用項目寬度,例如以下示例:我想在菜單項之后放置label1

 int w = 0;
 for (int i = 0; i < menuStrip1.Items.Count; i++)
 {
     w += menuStrip1.Items[i].Width;
 }
 label1.Width = (int)(this.Width - w);
 label1.Location = new Point(w, label1.Location.Y);

暫無
暫無

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

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