Как получить координаты отправителей в приложении Windows Form?

Я только начал изучать WinForms и в настоящее время озадачен тем, как получить позицию отправителей (mouses) (координаты). Я пытался искать, но безрезультатно.

Это моя, несколько, попытка, но, к сожалению, это закончилось ошибкой:

private: System::Void pictureBox1_MouseHover(System::Object^  sender, System::EventArgs^  e) {
    this->pictureBox1->Location = System::Drawing::Point(sender::Position.X - 5, sender::Position.Y - 5);
    MessageBox::Show("Foo", "Bar", MessageBoxButtons::OK, MessageBoxIcon::Stop);
}

Поэтому мой вопрос здесь достаточно ясен, я думаю: как я могу получить позицию отправителей (в данном случае, мышей). Объяснения также помогут. Спасибо!.

1 ответ

  1. Так как я не нашел правильный ответ, я выбрал более длинный маршрут.

    Во-первых, я объявил booleanв namespaceсо значением false(оно изменится на true, когда мышь коснется изображения). Затем я создаю два новых метода: один, чтобы получить Xи Yмыши и выполнить код, если мышь касается изображения и второй, чтобы определить, касается ли мышь изображения или нет.

    private: System::Void picture_MouseMove(Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
        int VMouseX = e->X,
            VMouseY = e->Y;
        if (VMouseEntered) {
            VMouseEntered = false;
            this->picture->Location = System::Drawing::Point(VMouseX + 17, VMouseY + 17);
        }
    }
    
    private: System::Void picture_MouseEnter(System::Object^ sender, System::EventArgs^ e) {
        VMouseEntered = true;
    }
    

    Затем я создаю два новых EventHandlersдля картины. ПервыйEventHandler-слушать движение мыши, второй-проверять, касается ли мышь изображения.

    this->picture->MouseMove += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::picture_MouseMove); // Checks for mouse movement.
    this->picture->MouseEnter += gcnew System::EventHandler(this, &Form1::picture_MouseEnter); // Checks whether the mouse is touching the picture.
    

    Выполнено. Надеюсь, что это кому-то поможет.