private void click(object sender, MouseEventArgs e) { if (myFile != null) { var x = e.X / GetSpecialWidth(myFile.IXCFile.ImageSize.Width); var y = (e.Y - _startY) / (myFile.IXCFile.ImageSize.Height + 2 * space); if (x >= numAcross()) { x = numAcross() - 1; } var index = y * numAcross() + x; var selected = new ViewPckItem(); selected.X = x; selected.Y = y; selected.Index = index; if (index < Collection.Count) { if (ModifierKeys == Keys.Control) { ViewPckItem existingItem = null; foreach (var item in _selectedItems) { if (item.X == x && item.Y == y) { existingItem = item; } } if (existingItem != null) { _selectedItems.Remove(existingItem); } else { _selectedItems.Add(selected); } } else { _selectedItems.Clear(); _selectedItems.Add(selected); } Refresh(); if (ViewClicked != null) { var args = new PckViewMouseClickArgs(e, index); ViewClicked(this, args); } } } }
private void ClearSelection(int lowestIndex) { _selectedItems.Clear(); if (Collection.Count != 0) { var selected = new ViewPckItem(); selected.Y = lowestIndex / numAcross(); selected.X = lowestIndex - selected.Y; selected.Index = selected.Y * numAcross() + selected.X; _selectedItems.Add(selected); } }
private int GetIndexOf(ViewPckItem selectedItem) { return(selectedItem.Y * numAcross() + selectedItem.X); }