コード例 #1
0
        private void lbSymbols_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            SymbolCollectionItem item = null;

            for (int i = 0; i < lbSymbols.Items.Count; i++)
            {
                Rectangle rect = lbSymbols.GetItemRectangle(i);

                if (rect.Y <= e.Y && (rect.Y + rect.Height) >= e.Y)
                {
                    item = (SymbolCollectionItem)lbSymbols.Items[i];
                    break;
                }
            }
            if (item == null)
            {
                return;
            }
            _mouseDownItem = item;

            if (e.X < 20)
            {
                item.Visible = !item.Visible;
                DrawPreview();
            }
        }
コード例 #2
0
        private void lbSymbols_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (_mouseOverItem != null &&
                _mouseDownItem != null &&
                _mouseOverItem != _mouseDownItem)
            {
                _symbol.RemoveSymbol(_mouseDownItem.Symbol);
                _symbol.InsertBefore(_mouseDownItem.Symbol, _mouseOverItem.Symbol, _mouseDownItem.Visible);
                buildList();

                _mouseOverItem = _mouseDownItem = null;
            }
        }
コード例 #3
0
        private void lbSymbols_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            _mX = e.X;
            _mY = e.Y;

            if (e.Button == MouseButtons.Left && lbSymbols.SelectedIndices.Count > 0 && _mouseDownItem != null)
            {
                SymbolCollectionItem item = null;
                Rectangle            rect = new Rectangle(0, 0, 0, 0);

                for (int i = 0; i < lbSymbols.Items.Count; i++)
                {
                    rect = lbSymbols.GetItemRectangle(i);
                    //if(rect==null) continue;

                    if (rect.Y <= e.Y && (rect.Y + rect.Height) >= e.Y)
                    {
                        item = (SymbolCollectionItem)lbSymbols.Items[i];
                        break;
                    }
                }
                if (item == null)
                {
                    return;
                }

                _mouseOverItem = item;

                System.Drawing.Graphics gr = System.Drawing.Graphics.FromHwnd(lbSymbols.Handle);

                Pen pen = new Pen(Color.Blue, 2);
                gr.DrawLine(pen, rect.Left, rect.Top, rect.Width, rect.Top);

                if (_rect != rect)
                {
                    pen.Color = lbSymbols.BackColor;
                    gr.DrawLine(pen, _rect.Left, _rect.Top, _rect.Width, _rect.Top);
                    _rect = rect;
                }
                pen.Dispose(); pen = null;
                gr.Dispose(); gr   = null;
            }
        }