J'ai une application graphique dans laquelle je déplace un objet graphique avec la souris.Arrêter ou déplacer la souris
Dans certaines conditions, l'objet s'arrête de bouger. Je dois alors arrêter de déplacer le curseur de la souris aussi.
Est-ce possible? Propriété MousePosition
semble être en ReadOnly.
Par exemple.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.X > 100)
{
Cursor.Position = new Point(100, Cursor.Position.Y);
}
}
}
EDIT, deuxième version, fonctionne, mais le curseur est pas "stable" - vacillante:
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.X > 100)
{
Point mousePosition = this.PointToClient(Cursor.Position);
mousePosition.X = 100;
Point newScreenPosition = this.PointToScreen(mousePosition);
Cursor.Position = newScreenPosition;
}
}
Vous pouvez remplacer ce code avec un seul appel à ClipCursor, où le rectangle est '{0, 0, 100, Form.Height}' (converti des coordonnées du client aux coordonnées de l'écran, évidemment). – GSerg