Je veux cacher mon curseur de souris après un temps d'inactivité et il apparaîtra lorsque je bougerai la souris. J'ai essayé d'utiliser une minuterie mais cela n'a pas bien fonctionné. Quelqu'un peut-il m'aider? S'il vous plaît!Cacher le curseur de la souris après un temps d'inactivité
Répondre
Voici un exemple inventé de la façon de le faire. Vous avez probablement eu une certaine logique manquante qui était PRÉPONDÉRANTS la visibilité du curseur:
public partial class Form1 : Form
{
public TimeSpan TimeoutToHide { get; private set; }
public DateTime LastMouseMove { get; private set; }
public bool IsHidden { get; private set; }
public Form1()
{
InitializeComponent();
TimeoutToHide = TimeSpan.FromSeconds(5);
this.MouseMove += new MouseEventHandler(Form1_MouseMove);
}
void Form1_MouseMove(object sender, MouseEventArgs e)
{
LastMouseMove = DateTime.Now;
if (IsHidden)
{
Cursor.Show();
IsHidden = false;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
TimeSpan elaped = DateTime.Now - LastMouseMove;
if (elaped >= TimeoutToHide && !IsHidden)
{
Cursor.Hide();
IsHidden = true;
}
}
}
Je ne peux pas trouver le 'Cursor.Hide' pour Cursor est de type. – lindexi
Si vous utilisez WinForms et ne déployer sur les machines Windows, alors il est très facile à utiliser user32 GetLastInputInfo
pour gérer à la fois la marche au ralenti souris et le clavier.
public static class User32Interop
{
public static TimeSpan GetLastInput()
{
var plii = new LASTINPUTINFO();
plii.cbSize = (uint)Marshal.SizeOf(plii);
if (GetLastInputInfo(ref plii))
return TimeSpan.FromMilliseconds(Environment.TickCount - plii.dwTime);
else
throw new Win32Exception(Marshal.GetLastWin32Error());
}
[DllImport("user32.dll", SetLastError = true)]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
}
Et puis dans votre Form
public partial class MyForm : Form
{
Timer activityTimer = new Timer();
TimeSpan activityThreshold = TimeSpan.FromMinutes(2);
bool cursorHidden = false;
public Form1()
{
InitializeComponent();
activityTimer.Tick += activityWorker_Tick;
activityTimer.Interval = 100;
activityTimer.Enabled = true;
}
void activityWorker_Tick(object sender, EventArgs e)
{
bool shouldHide = User32Interop.GetLastInput() > activityThreshold;
if (cursorHidden != shouldHide)
{
if (shouldHide)
Cursor.Hide();
else
Cursor.Show();
cursorHidden = shouldHide;
}
}
}
une solution élégante, merci – frameworkninja
Pour tenir compte de Environment.Tickcount étant négatif: – mikesl
Nécessité de tenir compte Environment.TickCount être négatif:
public static class User32Interop
{
public static TimeSpan GetLastInput()
{
var plii = new LASTINPUTINFO();
plii.cbSize = (uint)Marshal.SizeOf(plii);
if (GetLastInputInfo(ref plii))
{
int idleTime = unchecked(Environment.TickCount - (int)plii.dwTime);
return TimeSpan.FromMilliseconds(idleTime);
}
else
throw new Win32Exception(Marshal.GetLastWin32Error());
}
[DllImport("user32.dll", SetLastError = true)]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
}
- 1. Changer le curseur de la souris
- 2. SetCursor rétablit après un déplacement de souris
- 3. Comment cacher un curseur dans IE? (JavaScript)
- 4. Comment empêcher le curseur de la souris d'être caché après avoir appelé CComboBox :: ShowDropDown?
- 5. obtenir le type de curseur de la souris en cours
- 6. Comment obtenir le type de curseur global de la souris?
- 7. Comment changer le curseur de la souris dans PythonCard
- 8. Changer le curseur de la souris sur une page html
- 9. En déplaçant le curseur de la souris programme
- 10. souris déplacée curseur -crosshair
- 11. continuer à suivre événement glisser la souris, même après le curseur se déplace hors du film
- 12. Flash - Dans le menu contextuel le curseur de la souris n'est pas visible lorsque vous utilisez un curseur personnalisé
- 13. Obtention de l'élément sous le curseur de la souris dans un contrôle listview?
- 14. afficher/formulaire cacher lorsque le curseur est dans le coin supérieur gauche
- 15. Création curseur de la souris/pointeurs dans OS X Leopard
- 16. Modifier le type de curseur lorsque la souris survole un texte sélectionné en utilisant HTML/Javascript
- 17. Flex 3: Comment modifier le curseur de la souris lorsque vous passez la souris sur une entrée de texte?
- 18. utiliser dotfuscator après le temps de construction
- 19. Où est la ressource Win32 pour le curseur de la souris pour faire glisser les séparateurs?
- 20. jQuery Définir la position de la souris (pas la position du curseur)
- 21. déplacer le curseur de la souris hors de l'écran en C#
- 22. Programmation de l'API VC++ win32: comment changer le curseur de la souris
- 23. Erreur WMI après un certain temps
- 24. Après la minimisation de l'application, lors de la restauration, Windows poursuit le pointeur de la souris
- 25. Kill Process après un certain temps + C#
- 26. Changer le point chaud du curseur de la souris sur une page Web
- 27. La connexion mysql se ferme après un certain temps? (PHP)
- 28. Afficher les icônes qui sont déplacées par le curseur de la souris?
- 29. Comment puis-je redéfinir le script du pointeur de la souris après la réinitialisation d'une application?
- 30. Comment puis-je implémenter un "deuxième curseur de souris" dans une application Windows?
ce que la technologie? Winforms, WPF, Silverlight, ASP.Net –