Вы не должны захватывать события мыши, когда в этом нет необходимости. В вопросе недостаточно подробностей о том, что вы действительно хотите сделать и почему вам нужно знать, когда пользователь нажимал за пределами вашей формы.

легко получить положение курсора вне границы формы, просто перетаскивая мышью, она отправляет много значений в форму при каждом изменении положения, формируя следующую строку кода.

        MessageBox.Show(Cursor.Position.ToString());

Но мне нужно получить положение мыши, когда пользовательнажмите, изд вне границы формы. Не просто мышкой. Для этого я использовал следующую строку кода:

    private void Form1_Deactivate(object sender, EventArgs e)
    {
        MessageBox.Show(Cursor.Position.ToString());
    }

я размещенMessageBox.Show (Cursor.Position.ToString ()); в формы Деактивировать событие. Когда пользователь нажимает за пределами формы, это событие обязательно происходит. Но он также отправляет неправильные значения, когда пользователь не щелкает снаружи, а изменяет программу с помощьюALT + TAB комбинация клавиш. На самом деле я должен сделать снимок экрана области, начиная с позиции первого клика. Поэтому мне нужно положение курсора, когда он нажимается за пределами формы. любить:

Ответы на вопрос(5)

Ваш ответ на вопрос