/// <summary> /// Очищення вкладки Піксель /// </summary> private void PixelClear() { // Забороняємо малювати маркер markerPix.Dozvil = false; // чистимо список маркерів markerPix.MarkerDict.Clear(); // чистимо статусний рядок ClearStatusDown(); if (img.imageCorect != null) { // Міняємо курсор на вид очікування this.Cursor = Cursors.AppStarting; // Відображаємо картинку PictureBoxPixel.Image = img.imageCorect; // оновлюємо таблицю маркерів TableShowPix(markerPix, img.imageCorect, dataGridViewPixel); // Повертаємо курсор назад this.Cursor = Cursors.Default; } // оновлення області для відобрадення маркера PictureBoxPixel.Refresh(); }
/// <summary> /// Відбувається при видаленні рядків на вкладці Піксель /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DataGridViewPixel_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { // видаляємо із словника маркери які були виділені в таблиці for (int i = 0; i < dataGridViewPixel.SelectedRows.Count; i++) { markerPix.MarkerDict.Remove(int.Parse(dataGridViewPixel. SelectedRows[i].HeaderCell.Value.ToString())); } // сортування (перезаписуємо словник для нормального добавляння елементів в кінець) markerPix.MarkerDict = markerPix.MarkerDict.ToDictionary(x => x.Key, y => y.Value); // оновлюємо зображення PictureBoxPixel.Refresh(); }
/// <summary> /// Відбувається коли нажимається кнопка миши /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PictureBoxPixel_MouseDown(object sender, MouseEventArgs e) { // Керуємо відображенням курсора миші MouseForm(PictureBoxPixel); // ліва кнопка миши if ((PictureBoxPixel.Cursor == Cursors.Cross) && (e.Button == MouseButtons.Left)) { // перевірка точок if (markerPix.MarkerDict.Count > 0) { // в пам'яті наявно більше одного маркера, перевіряємо чи наступний // не збігається координатами із попередніми foreach (Point i in markerPix.MarkerDict.Values) { if (!i.Equals(e.Location)) { // якщо немає подібних то дозволяємо ставити маркер markDozvilPix = true; } else { // якщо хоч один є забороняємо ставити і виходимо із циклу markDozvilPix = false; break; } } // якщо є дозвіл на збереження маркера, то зберігаємо його if (markDozvilPix) { // додавання елемента markerPix.MarkerDict.Add(markerPix.MarkerDict.Last().Key + 1, e.Location); // забороняємо зберігати маркер markDozvilPix = false; } } else { // робоча область чиста, ставимо переший маркер markerPix.MarkerDict.Add(0, e.Location); // забороняємо зберігати маркер markDozvilPix = false; // дозволяємо малювати маркери markerPix.Dozvil = true; } // оновлення області для відобрадення маркера PictureBoxPixel.Refresh(); // оновлюємо таблицю маркерів if (img.imageCorect != null) { TableShowPix(markerPix, img.imageCorect, dataGridViewPixel); } } // збереження координат мишки MouseSave(e, splitContainerPixel.Panel1.AutoScrollPosition); }