當左鍵單擊按鈕(btnMassEdit)時,我想要顯示一個ContextMenuStrip(ctMenuMassEdit)。我希望按鈕,即,位置(0,-ContextMenuStrip.Height)相對於所述按鈕上方將被顯示的的ContextMenuStrip:在顯示ContextMenuStrip之前查找高度
private void btnMassEdit_Click(object sender, EventArgs e)
{
ctMenuMassEdit.Show(btnMassEdit, new Point(0, -ctMenuMassEdit.Height));
}
然而,Height屬性爲0的第一次按鈕被點擊(I假設ContextMenuStrip在第一次顯示之前不會被創建),結果是ContextMenuStrip出現在按鈕的頂部。第二次,我點擊按鈕,但它出現在正確的位置,所以我的邏輯基本至少是正確的。
我嘗試添加顯示之前的ContextMenuStrip以下,但希望它沒有工作:
if (!ctMenuMassEdit.Created)
{
ctMenuMassEdit.CreateControl();
}
那麼,有沒有辦法顯示它在第一時間之前,我可以創造的ContextMenuStrip,所以我有正確的高度屬性?我當然可以使用黑客顯示它,隱藏它並再次顯示它,但這似乎並不簡單...
謝謝,我不知道ToolStripDropDownDirection選項。像魅力一樣工作!我的最終代碼看起來像這樣: 'ctMenuMassEdit.Show(btnMassEdit,new Point(0,0),ToolStripDropDownDirection.AboveRight);' – Nailuj 2010-06-04 07:38:24