private void ShowOptions()
 {
     var popup = new DropDownListPopup(listControl);
     popup.Show(Owner, Position.X, Position.Y + Size.Height);
 }
        private void GridTickersOnUserHitCell(object sender, MouseEventArgs mouseEventArgs, int rowIndex, FastColumn col)
        {
            if (mouseEventArgs.Button != MouseButtons.Left) return;
            var sets = (TagGraphics) gridTickers.rows[rowIndex].ValueObject;

            // добавить строку
            if (sets.IsNewRowDummy)
            {
                var newSets = new TagGraphics
                    {
                        Symbol = DalSpot.Instance.GetTickerNames().First(),
                        BarSettings = BarSettingsStorage.Instance.GetCollection().First()
                    };

                // копировать существующую?
                var setsSpec = gridTickers.rows.Select(r => (TagGraphics)r.ValueObject).FirstOrDefault(r => r.IsNewRowDummy == false);
                if (setsSpec != null)
                {
                    newSets.Symbol = setsSpec.Symbol;
                    newSets.BarSettings = setsSpec.BarSettings;
                }

                var setsList = gridTickers.rows.Select(r => (TagGraphics) r.ValueObject).ToList();
                setsList.Add(newSets);

                gridTickers.DataBind(setsList);
                AnchorDummyRow();
                gridTickers.Invalidate();
                return;
            }

            // всплывающий диалог
            if (col.PropertyName == TagGraphics.speciman.Property(s => s.Symbol) ||
                col.PropertyName == TagGraphics.speciman.Property(s => s.TimeframeString))
            {
                // показать combobox - выбор тикера / таймфрейма
                var coords = gridTickers.GetCellCoords(col, rowIndex);

                var list = col.PropertyName == TagGraphics.speciman.Property(s => s.Symbol) ? listTickers : listTimeframes;
                list.Width = col.ResultedWidth;

                var popup = new DropDownListPopup(list);
                popup.Show(gridTickers, coords.X, coords.Y + gridTickers.CellHeight);
                list.cellClicked = (obj, text) =>
                    {
                        if (list == listTickers)
                            sets.Symbol = text;
                        else
                            sets.TimeframeString = text;
                        gridTickers.UpdateRow(rowIndex, sets);
                        gridTickers.InvalidateCell(col, rowIndex);
                    };
                return;
            }

            // удаление
            gridTickers.rows.RemoveAt(rowIndex);
            gridTickers.Invalidate();
        }
        private void ShowOptions()
        {
            var popup = new DropDownListPopup(listControl);

            popup.Show(Owner, Position.X, Position.Y + Size.Height);
        }
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            var containerPoints = indicatorPointArray.Select(p => new PointF(p.X * Sx, p.Y * Sy)).ToArray();
            var containerPath = new GraphicsPath();
            containerPath.AddPolygon(containerPoints);
            if (!containerPath.IsVisible(e.Location)) return;

            for (var i = 0; i < trianglePointArray.Length; i++) // Переварачиваем треугольник
                trianglePointArray[i] = new PointF(triangleClosePointArray[i].X, -1 * triangleClosePointArray[i].Y);

            // Если размеры выпадающего списка обновились, то нужно обновить размеры выпадающих элементов и размеры контейнера
            if (mustUpdateSize)
            {
                dropList.Width = Width;
                mustUpdateSize = false;
            }

            var volumeQuoteDropDownList = new DropDownListPopup(dropList);

            volumeQuoteDropDownList.Show(new Point(PointToScreen(ClientRectangle.Location).X, PointToScreen(ClientRectangle.Location).Y + ClientRectangle.Height));
            volumeQuoteDropDownList.Closed += VolumeQuoteDropDownListClosed;
            Invalidate();
        }