internal void FireEvent (EventArgs e, ToolStripItemEventType met)
		{
			// If we're disabled, don't fire any of these events, except Paint
			if (!this.Enabled && met != ToolStripItemEventType.Paint)
				return;
				
			switch (met) {
				case ToolStripItemEventType.MouseUp:
					this.HandleClick (((MouseEventArgs)e).Clicks, e);
					this.OnMouseUp ((MouseEventArgs)e);
					break;
				case ToolStripItemEventType.MouseDown:
					this.OnMouseDown ((MouseEventArgs)e);
					break;
				case ToolStripItemEventType.MouseEnter:
					this.OnMouseEnter (e);
					break;
				case ToolStripItemEventType.MouseHover:
					this.OnMouseHover (e);
					break;
				case ToolStripItemEventType.MouseLeave:
					this.OnMouseLeave (e);
					break;
				case ToolStripItemEventType.MouseMove:
					this.OnMouseMove ((MouseEventArgs)e);
					break;
				case ToolStripItemEventType.Paint:
					this.OnPaintInternal ((PaintEventArgs)e);
					break;
				case ToolStripItemEventType.Click:
					this.HandleClick (1, e);
					break;
			}
		}
        internal void FireEvent(EventArgs e, ToolStripItemEventType met)
        {
            switch (met)
            {
                case ToolStripItemEventType.Paint:
                    this.HandlePaint(e as PaintEventArgs);
                    return;

                case ToolStripItemEventType.LocationChanged:
                    this.OnLocationChanged(e);
                    return;

                case ToolStripItemEventType.MouseMove:
                    if (this.Enabled || (this.ParentInternal == null))
                    {
                        this.FireEventInteractive(e, met);
                        return;
                    }
                    this.BeginDragForItemReorder();
                    return;

                case ToolStripItemEventType.MouseEnter:
                    this.HandleMouseEnter(e);
                    return;

                case ToolStripItemEventType.MouseLeave:
                    if (this.Enabled || (this.ParentInternal == null))
                    {
                        this.HandleMouseLeave(e);
                        return;
                    }
                    this.ParentInternal.UpdateToolTip(null);
                    return;

                case ToolStripItemEventType.MouseHover:
                    if ((this.Enabled || (this.ParentInternal == null)) || string.IsNullOrEmpty(this.ToolTipText))
                    {
                        this.FireEventInteractive(e, met);
                        return;
                    }
                    this.ParentInternal.UpdateToolTip(this);
                    return;
            }
            this.FireEventInteractive(e, met);
        }
        internal void FireEventInteractive(EventArgs e, ToolStripItemEventType met)
        {
            if (this.Enabled)
            {
                switch (met)
                {
                    case ToolStripItemEventType.MouseUp:
                        this.HandleMouseUp(e as MouseEventArgs);
                        return;

                    case ToolStripItemEventType.MouseDown:
                        this.HandleMouseDown(e as MouseEventArgs);
                        return;

                    case ToolStripItemEventType.MouseMove:
                        this.HandleMouseMove(e as MouseEventArgs);
                        return;

                    case ToolStripItemEventType.MouseEnter:
                    case ToolStripItemEventType.MouseLeave:
                        return;

                    case ToolStripItemEventType.MouseHover:
                        this.HandleMouseHover(e);
                        return;

                    case ToolStripItemEventType.Click:
                        this.HandleClick(e);
                        return;

                    case ToolStripItemEventType.DoubleClick:
                        this.HandleDoubleClick(e);
                        return;
                }
            }
        }
 internal void FireEvent(ToolStripItemEventType met)
 {
     this.FireEvent(new EventArgs(), met);
 }