[英]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.