protected override void OnMouseDown( System.Windows.Forms.MouseEventArgs e ) { base.OnMouseDown(e); int lIndex = -1; bool bInvalidate = false; if (m_bDrawBar) lIndex = HitTestItem(e.X, e.Y); else if (m_eMenuOrientation == VistaMenuOrientation.Vertical) lIndex = (e.Y + 1) / (m_lItemHeight + 2); else lIndex = (e.X + 1) / (m_lItemWidth - 2 ); if (e.Button == MouseButtons.Left) { for (int i = 0; i < items.Count; i++) { if (lIndex == i) { if (items[i].Disabled) return; if (!items[i].Checked) { items[i].MouseDown = true; bInvalidate = true; } VistaMenuItemClickArgs item = new VistaMenuItemClickArgs(items[i]); if (VistaMenuItemClick != null) VistaMenuItemClick(item); if (m_bCheckOnClick) { if (!items[i].Disabled) { if (!items[i].Checked) { items[i].Checked = true; bInvalidate = true; } } } } else { if (items[i].Checked) { items[i].Checked = false; bInvalidate = true; } } } } if (bInvalidate) { Invalidate(); } }
protected override void OnMouseDown( System.Windows.Forms.MouseEventArgs e ) { base.OnMouseDown(e); int lIndex = -1; bool bInvalidate = false; if (m_bDrawBar) { lIndex = HitTestItem(e.X, e.Y); } else if (m_eMenuOrientation == VistaMenuOrientation.Vertical) { lIndex = (e.Y + 1) / (m_lItemHeight + 2); } else { lIndex = (e.X + 1) / (m_lItemWidth - 2); } if (e.Button == MouseButtons.Left) { for (int i = 0; i < items.Count; i++) { if (lIndex == i) { if (items[i].Disabled) { return; } if (!items[i].Checked) { items[i].MouseDown = true; bInvalidate = true; } VistaMenuItemClickArgs item = new VistaMenuItemClickArgs(items[i]); if (VistaMenuItemClick != null) { VistaMenuItemClick(item); } if (m_bCheckOnClick) { if (!items[i].Disabled) { if (!items[i].Checked) { items[i].Checked = true; bInvalidate = true; } } } } else { if (items[i].Checked) { items[i].Checked = false; bInvalidate = true; } } } } if (bInvalidate) { Invalidate(); } }