Exemplo n.º 1
0
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);

            bool lastCDiagButtonHovered = this.buttonCDiagHovered;
            bool lastCPickButtonHovered = this.buttonCPickHovered;
            bool lastPanelHovered = this.panelHovered;
            this.buttonCDiagHovered = !this.ReadOnly && this.rectCDiagButton.Contains(e.Location);
            this.buttonCPickHovered = !this.ReadOnly && this.rectCPickButton.Contains(e.Location);
            this.panelHovered = this.rectPanel.Contains(e.Location);

            if (lastCDiagButtonHovered != this.buttonCDiagHovered ||
                lastCPickButtonHovered != this.buttonCPickHovered ||
                lastPanelHovered != this.panelHovered)
                this.Invalidate();

            if (this.panelDragBegin != Point.Empty)
            {
                if (Math.Abs(this.panelDragBegin.X - e.X) > 5 || Math.Abs(this.panelDragBegin.Y - e.Y) > 5)
                {
                    DataObject dragDropData = new DataObject();
                    dragDropData.SetIColorData(new[] { this.value });
                    this.ParentGrid.DoDragDrop(dragDropData, DragDropEffects.All | DragDropEffects.Link);
                }
            }
        }
Exemplo n.º 2
0
        protected override void OnKeyDown(KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Return)
            {
                this.ShowColorDialog();
                e.Handled = true;
            }
            else if (e.KeyCode == Keys.C && e.Control)
            {
                DataObject data = new DataObject();
                data.SetIColorData(new[] { this.value ?? (IColorData)ColorRgba.TransparentBlack });
                Clipboard.SetDataObject(data);
                e.Handled = true;
            }
            else if (e.KeyCode == Keys.V && e.Control)
            {
                DataObject data = Clipboard.GetDataObject() as DataObject;
                if (data.ContainsIColorData())
                {
                    this.value = data.GetIColorData<IColorData>().FirstOrDefault();
                    this.PerformSetValue();
                    this.PerformGetValue();
                    this.OnEditingFinished(FinishReason.LeapValue);
                }
                else
                    System.Media.SystemSounds.Beep.Play();

                e.Handled = true;
            }
            base.OnKeyDown(e);
        }