2011-08-08 76 views
0

誰能告訴我如何獲取ContextMenuStrip中子菜單的屬性?C#ContextMenuStrip子菜單屬性

我知道我可以創建一個表單並在其上放置一個上下文菜單條。如果我再添加一些項目到條:

列表項

  • - 紅
  • - 藍
  • 標記
  • - 格林
  • - 橙色

然後我寫了下面的代碼:

public partial class Form3 : Form 
{ 
    public Form3() 
    { 
     InitializeComponent(); 
     this.contextMenuStrip1.AutoSize = false; 
     this.contextMenuStrip1.Height = 300; 
     this.contextMenuStrip1.Width = 150; 
    } 

    /// <summary> 
    /// Handles the MouseClick event of the Form1 control. 
    /// </summary> 
    /// <param name="sender">The source of the event.</param> 
    /// <param name="e">The <see cref="System.Windows.Forms.MouseEventArgs"/> instance containing the event data.</param> 
    private void Form3_MouseClick_1(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Right) 
     { 
      Point pt = this.PointToScreen(e.Location); 
      this.contextMenuStrip1.Show(pt); 
     } 
    } 
} 

顯示鋼筆和標記頂層菜單將在非自動調整大小條150 * 300,但如果我將鼠標懸停在筆讓子菜單,紅色和藍色,這個子菜單會顯示在一個自動化的地帶上!

如何獲取子菜單屬性,以便設置其高度?

回答

0

對於你的問題有關

我如何在子菜單中的屬性,所以我可以告訴它什麼高度我 想要它!

使用Items

ContextMenuStrip1.Items[0].Height=200; 

併爲items[0]任何子itmes:

foreach(ToolStripItem item in (ContextMenuStrip1.Items[0] as ToolStripDropDownItem).DropDownItems) 
{ 
    item.AutoSize=false; 
    item.Height=200; 
} 
+0

這不會爲我做的伎倆。雖然它會導致項目變大,並且強制「包含菜單」變得更大,但這不是我想要的。實際上,我寫了一個自定義渲染,用於防止自動調整大小的項目,以便我手動設置包含菜單的大小。 – AidanO

+0

@AidanO,我對你想達到的目標感到困惑。 – Bolu

+0

頂級商品被保存在一個contextmenustrip中,其高度和寬度可以獨立設置。我希望找到保存不在頂層的項目的對象。 – AidanO