Пример #1
0
        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);
                    }
                }
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 private int GetIndexOf(ViewPckItem selectedItem)
 {
     return(selectedItem.Y * numAcross() + selectedItem.X);
 }