2015-08-28 1 views
0

J'ai voulu créer un programme qui déplace le curseur en appuyant sur les touches W, A, S, D. J'ai créé un formulaire parce qu'il était difficile de mettre le Keyboard.IsKeyDown(Key.W) dans le script.Déplacer le curseur de la souris dans Windows Forms

Ceci est le code que j'ai jusqu'à présent:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Windows.Input; 

namespace keyboardMouse 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void rdnbtnMove_CheckedChanged(object sender, EventArgs e) 
     { 
      if (Keyboard.IsKeyDown(Key.W)) 
      { 
        Cursor.Position = new System.Drawing.Point(  
         Cursor.Position.Y + 5); 
      } 
     } 
    } 
} 

Cependant, il jette cette erreur

membre 'Cursor.Position' ne peut pas être accessible avec une instance référence; le qualifier avec un nom de type à la place

Comment puis-je résoudre ce problème? Toute aide est appréciée.

+0

De l'dup:> simple remplacement "Cursor.Position" par "MousePosition". –

+0

Vous devriez également jeter un oeil à cette approche: http://stackoverflow.com/questions/647236/moving-mouse-cursor-programmatically?rq=1 –

+0

Votre code 'Cursor.Position = ...' fonctionne pour moi , en C# 6. Et changer de 'MousePosition' directement ne fonctionnera pas, puisqu'il n'a pas de setters. –

Répondre

1

le Form votre code est activé a une propriété Cursor. Ce n'est pas ce que vous voulez accéder.

Au lieu Qualifiez entièrement le type, comme l'erreur indique:

System.Windows.Forms.Cursor.Position