Мне нужен простой указатель указателя мыши в виде круга, центрированного указателем мыши. Использование Invalidate() в приведенном ниже коде приводит к тому, что задние круги вдоль пути мерцают. Они едва заметны. Более того, он не рисует круг в тот момент, когда я опираюсь на мышь.Как выделить позицию указателя мыши с помощью C#
Какое событие следует рассмотреть, чтобы нарисовать круг в позиции, в которой находится указатель мыши (пробовал другие события мыши)?
Есть ли способ обновить чертеж без использования invalidate()?
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
SolidBrush myBrush = new SolidBrush(Color.Yellow);
Graphics gg = this.CreateGraphics();
Point p = new Point();
p = e.Location;
int radius = 10;
float x = p.X - radius;
float y = p.Y - radius;
float width = 5 * radius;
float height = 5 * radius;
gg.FillEllipse(myBrush, x, y, width, height);
gg.dispose();
Invalidate();
}
Wrt Flicker: Вы включили DoubleBuffering для формы? - Обычный способ заключается в том, чтобы вызвать сохранение позиции мыши в MoveMove, а затем вызвать Invalidate. Рисунок должен быть выполнен в Paint evnet с использованием его объекта e.Graphics. – TaW
Нет, я не знаю об этом. – navin
Ну, это свойство. Посмотрите на вкладку свойств! – TaW