Есть класс Circle
, который рисует окружности заданного размера. Я попытался сделать событие на клик мыши, которое показывало бы информацию по данному объекту (координаты, имя и т.д.), но у меня не получается сравнить координаты курсора мыши и данного объекта.
Можно ли как-то по-другому реализовать событие на объект по клику мыши и по фокусу (наведение курсора на объект)?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
tt = new ToolTip();
Width = 500;
Height = 500;
BuildFigures();
}
private ToolTip tt;
List<Circle> circles = new List<Circle>();
protected override void OnPaint(PaintEventArgs e)
{
foreach(var f in circles)
{
f.DrawCircle(e.Graphics);
}
}
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left)
foreach (var f in circles.Reverse<Circle>())
if (f.HitTest(e.Location))
{
Debug.WriteLine(f.Location);
Debug.WriteLine(e.Location);
tt?.Show(f.Name, this);
}
}
private void BuildFigures()
{
float r = 25f;
var rnd = new Random();
for (int i = 0; i < 10; i++)
{
var f = new Circle(new PointF(rnd.Next(Width), rnd.Next(Height)), r);
f.Name = "Circle = " + i;
circles.Add(f);
}
}
public class Circle
{
private RectangleF Rect { get; set; }
public PointF Location { get; set; }
public Graphics Path { get; set; }
public string Name { get; set; }
public Circle(PointF Point, float Radius)
{
this.Location = Point;
this.Rect = new RectangleF(Point, new SizeF(Radius, Radius));
}
public bool HitTest(PointF point)
{
return Path.IsVisible(point);
}
public void DrawCircle(Graphics graph)
{
graph.DrawEllipse(Pens.Red, Rect);
graph.FillEllipse(Brushes.Red, Rect);
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно вызывать функцию каждый определённый n-ый промежуток времени
Есть таблица authors со столбцами fio, count, urlВсе данные загружаются в datagridview (столбец с ID тоже, но он не отображается на форме)
Подскажите пожалуйста, почему я получаю сообщение об ошибке когда на моём компьютере нету пользователя, которым я пытаюсь пройти удалённую...
Такая задача, нужно вычислить точки 6 треугольников, которые находятся на круге и записать их в массив которые хранит координаты каждого...