Я борюсь в проекте на Windows Mobile 6.5. Я пишу настраиваемые элементы управления, которые могут строить линии, в которых пользователь нажал на пользовательские элементы управления.C# customcontrol OnMouseDown - всегда ошибается Y позиция
У меня возникла проблема с тем, что OnMouseDown (MouseEventArgs e) не вернет правильную e.Y (Y позиция щелкнутого местоположения). Кто-нибудь, пожалуйста, помогите! Я потратил несколько часов на эту проблему, но все еще не могу понять, что случилось. (Я думаю, что я нахожусь в неправильном направлении)
Вот что приложение выглядит следующим образом:
Когда я попытался запустить в эмуляторе WM6.5, тем OnMouseDown (MouseEventArgs е) всегда return неправильная позиция Y (она возвращает Y-местоположение минус некоторые значения). Например: я нажал на центр элемента управления для первого щелчка, но, очевидно, e.Y не находится в центре.
Вот код спинет:
protected override void OnPaint(PaintEventArgs pe)
{
Graphics g = pe.Graphics;
Pen pen_black = new Pen(Color.Black);
g.DrawLine(pen_black, 0, 0, this.Width, 0);
g.DrawLine(pen_black, 0, this.Height - 1, this.Width, this.Height - 1);
g.DrawLine(pen_black, 0, 0, 0, this.Height);
g.DrawLine(pen_black, this.Width - 1, 0, this.Width - 1, this.Height);
// draw center cross
g.DrawLine(pen_black, this.Width/2, this.Height/2 + 10, this.Width/2, this.Height/2 - 10);
g.DrawLine(pen_black, this.Width/2 + 10, this.Height/2, this.Width/2 - 10, this.Height/2);
// draw lines between all mouse down point
if (pointCount > 0)
{
Pen pen_red = new Pen(Color.Red);
for (int i = 0; i < pointCount - 1; i++)
{
g.DrawLine(pen_red, lineList[i].X, lineList[i].Y, lineList[i + 1].X, lineList[i + 1].Y);
}
}
base.OnPaint(pe);
}
protected override void OnMouseDown(MouseEventArgs e)
{
// Put the last point to array
lineList[pointCount] = new Point(e.X, e.Y);
pointCount++;
}
Вот исходный код из моих пользовательских элементов управления-: Download here Спасибо!
Я уверен, что это не имеет ничего общего с ColdFusion. Почему этот тег? –