Я использую Windows Forms в C #, и я хотел бы создать функцию, которая выполняет следующие действия:
Когда пользователь нажимает на форму, «что-то» будет нарисовано в месте, которое он щелкнул.
У меня есть два вопроса:
1) Есть ли лучший метод / рекомендуемый способ сделать это?Прямо сейчас я использую Windows EventHandler, который срабатывает при щелчке мыши, получает местоположение курсора, а затем рисует объект в этом месте.
2) Когда я рисую объект в месте «Курсор».Положение ", это на самом деле рисуется значительно дальше, чем где находится фактический курсор.(Он рисует это вниз и влево.) Есть ли какой-то тип преобразования, который необходимо выполнить на Cursor.Position, чтобы получить координаты экрана?
Ниже я продемонстрировал несколько упрощенных примеров кода.Вы видите, что я регистрирую форму в «Click» EventHandler.Затем, когда запускается EventHandler, я вызываю функцию, которая просто рисует метку на форме.
Заранее спасибо за вашу помощь.
MyForm myForm = new myForm();
myForm.Click += new System.EventHandler(this.MyForm_Click);
_
private void MyForm_Click(object sender, EventArgs e)
{
Point p = Cursor.Position; // Does this get the correct position?
DrawObject(p);
}
private void DrawObject(Point p)
{
Label l = new Label()
l.Size = new System.Drawing.Size(300, 300);
l.Text = "New Label";
l.Location = p;
this.Controls.Add(l);
}