コード例 #1
0
        /// <summary>
        /// Прихващане на координатите при натискането на бутон на мишката и проверка (в обратен ред) дали не е
        /// щракнато върху елемент. Ако е така то той се отбелязва като селектиран и започва процес на "влачене".
        /// Промяна на статуса и инвалидиране на контрола, в който визуализираме.
        /// Реализацията се диалогът с потребителя, при който се избира "най-горния" елемент от екрана.
        /// </summary>
        void ViewPortMouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (pickUpSpeedButton.Checked)
            {
                if (e.Button == MouseButtons.Left)
                {
                    var shp = dialogProcessor.ContainsPoint(e.Location);
                    if (shp != null)
                    {
                        if (dialogProcessor.Selection.Contains(shp))
                        {
                            dialogProcessor.Selection.Remove(shp);
                            shp.BorderColor = Color.Black;
                        }
                        else
                        {
                            dialogProcessor.Selection.Add(shp);
                            shp.BorderColor = Color.Red;
                        }

                        statusBar.Items[0].Text      = "Последно действие: Селекция на примитив";
                        dialogProcessor.IsDragging   = true;
                        dialogProcessor.LastLocation = e.Location;
                        viewPort.Invalidate();
                    }
                }
                else if (e.Button == MouseButtons.Right)
                {
                    Shape shape = dialogProcessor.ContainsPoint(e.Location);
                    copyShape = shape;
                    if (shape != null)
                    {
                        MouseMenu.Show(e.Location);
                    }
                    else
                    {
                        mouseLocation = e.Location;
                        PanelMouseMenu.Show(e.Location);
                    }
                }
            }
        }