MenuItem.MeasureItem 事件

定义

当菜单在绘制菜单项之前需要知道菜单项大小时发生。

public:
 event System::Windows::Forms::MeasureItemEventHandler ^ MeasureItem;
public event System.Windows.Forms.MeasureItemEventHandler MeasureItem;
member this.MeasureItem : System.Windows.Forms.MeasureItemEventHandler 
Public Custom Event MeasureItem As MeasureItemEventHandler 

事件类型

示例

下面的代码示例演示了此成员的用法。 在此示例中,事件处理程序报告事件的发生情况 MeasureItem 。 此报告可帮助你了解事件发生的时间,并可以帮助你进行调试。

若要运行示例代码,请将其粘贴到包含名为 MenuItem1的类型的MenuItem实例的项目中。 然后,确保事件处理程序与 MeasureItem 事件相关联。

private void MenuItem1_MeasureItem(Object sender, MeasureItemEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "Graphics", e.Graphics );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Index", e.Index );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "ItemHeight", e.ItemHeight );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "ItemWidth", e.ItemWidth );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "MeasureItem Event" );
}
Private Sub MenuItem1_MeasureItem(sender as Object, e as MeasureItemEventArgs) _ 
     Handles MenuItem1.MeasureItem

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "Graphics", e.Graphics)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Index", e.Index)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "ItemHeight", e.ItemHeight)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "ItemWidth", e.ItemWidth)
    messageBoxVB.AppendLine()
    MessageBox.Show(messageBoxVB.ToString(),"MeasureItem Event")

End Sub

注解

若要引发此事件,必须将 OwnerDraw 菜单项的 属性设置为 true。 在绘制所有者绘制的菜单之前引发此事件,以便指定要绘制的菜单项的大小。 有关处理事件的详细信息,请参阅 处理和引发事件

适用于

另请参阅