private void ShowTooltip(Point pt) { var tooltip = string.Empty; RectangleF rect = new RectangleF(); if (StrokeRectangle.Contains(pt)) { tooltip = Resources.StrokeColorToolTip; rect = StrokeRectangle; } else if (FillRectangle.Contains(pt)) { tooltip = Resources.FillColorToolTip; rect = FillRectangle; } else if (SwapImageRectangle.Contains(pt)) { tooltip = Resources.SwapColorsToolTip; rect = SwapImageRectangle; } //Если курсор переместился в другой прямоугольник if (!Equals(rect, _prevRect)) { toolTip1.SetToolTip(this, tooltip); } _prevRect = rect; }
protected override void OnMouseClick(MouseEventArgs e) { var index = -1; //В каком прямоугольнике кликнули if (StrokeRectangle.Contains(e.Location))//цвет контура { index = 1; } else if (FillRectangle.Contains(e.Location))//цвет фона { index = 0; } else if (SwapImageRectangle.Contains(e.Location))//поменять цвета { SwapColors(); return; } if (index == -1) { return; } using (var dialog = new ColorDialog()) { dialog.Color = index == 0 ? Fill : Stroke; dialog.SolidColorOnly = false; if (dialog.ShowDialog(this) != DialogResult.OK) { return; } switch (index) { case 0: Fill = dialog.Color; break; case 1: Stroke = dialog.Color; break; } } }