У меня есть fom, к которому подключен один пользовательский элемент управления.
этот пользовательский элемент управления отображает разные изображения. Каждое изображение имеет идентификатор, и у меня есть список из imageId против словаря объектов imageDetail.
Перемещение мыши этого пользовательского элемента управления фиксируется, и я отображаю текущее положение мыши по оси X и Y во всплывающей подсказке.
Я также хочу отображать детализацию изображения во всплывающей подсказке, когда пользователь удерживает указатель мыши над изображением в течение некоторого временивремя.
Я пытался сделать это с помощью события Mouse Hover, но оно вызывалось только тогда, когда мышь входит в пользовательский контроль.после этого, если я перемещаю мышь в пользовательском элементе управления, событие при наведении мыши не запускается ...
Как отобразить текущую позицию X, Y вдоль детали изображения во всплывающей подсказке.
есть ли способдля имитации события Mouse Hover в Mouse Move с использованием некоторого таймера.
Есть ли пример кода ..
Я решил эту проблему с помощью
public partial class Form1 : Form
{
Timer timer;
bool moveStart;
int count = 0;
Point prev;
public Form1()
{
InitializeComponent();
timer = new Timer();
timer.Interval = 1000;
timer.Tick += new EventHandler(timer_Tick);
}
void timer_Tick(object sender, EventArgs e)
{
this.timer.Stop();
this.moveStart = false;
this.toolTip1.SetToolTip(this, string.Format("Mouse Hover"));
this.textBox1.Text = (++count).ToString();
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (this.prev.X == e.X && this.prev.Y == e.Y)
return;
if (moveStart)
{
this.prev = new Point(e.X, e.Y);
this.timer.Stop();
this.toolTip1.SetToolTip(this, string.Format("Mouse Move\nX : {0}\nY : {1}", e.X, e.Y));
this.timer.Start();
}
else
{
moveStart = true;
}
}
}