コード例 #1
0
ファイル: VistaMenuControl.cs プロジェクト: 0anion0/IBN
        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();
            }
        }
コード例 #2
0
ファイル: VistaMenuControl.cs プロジェクト: alex765022/IBN
        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();
            }
        }