/// <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); } } } }