Выберите строку в окне, нажав на нее

#c#

Вопрос:

Я хочу сделать If condition isAT это, чтобы получить положение линии на экране.Это означает, что когда мышь на линии и я нажимаю на линию, я могу ее выбрать.Что мне нужно, так это возможность выбрать строку, когда я нажимаю на нее мышью.Заранее спасибо за помощь.

 public class MyLine : Shape
   {

       private float _endY, _endX;
       
       public MyLine() : this(Color.Orange, 0 , 0, 0, 0)
       {

       }

       public MyLine(Color clr, float starX, float starY, float endX, float endY ) : base(clr)
       {
          
           X = starX;
           Y = starY;
           this.endX = endX;
           this.endY = endY;
       }


       public float endX
       {
           get { return _endX; }
           set { _endX = value; }

       }

       public float endY
       {
           get { return _endY; }
           set { _endY = value; }
       }
      
       public override bool IsAT(Point2D pt)
       {
           if (pt.X > X amp;amp; pt.Y < Y amp;amp; pt.X > endX amp;amp; pt.Y > endY)
               return true;
           else
               return false;
       }
   }

 

Комментарии:

1. pt.X > endX amp;amp; pt.Y > endY Должно быть < там?

2. если это возможно, пожалуйста, не могли бы вы объяснить мне это?

3. pt.X > X amp;amp; pt.Y > endY проверяет, находится ли точка справа и ниже левого верхнего угла. pt.X < endX amp;amp; pt.Y < endY проверяет, находится ли точка слева и выше нижнего правого угла. Однако это не сработает, если линия имеет a width = 1 — это действительно то, как вы проверяете, находится ли точка внутри прямоугольника. Кроме того, это работает только с горизонтальными и вертикальными линиями. Если линия находится под углом, вам придется немного посчитать.