Chcę ukryć kursor myszy po czasie bezczynności i zostanie wyświetlony, gdy poruszę myszą. Próbowałem użyć timera, ale nie działało dobrze. Czy ktoś może mi pomóc? Proszę!Ukryj kursor myszy po czasie bezczynności
Odpowiedz
Oto wymyślny przykład tego, jak to zrobić. Prawdopodobnie trzeba było trochę brakuje logiki, która została unieważniając widoczność kursora:
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;
}
}
}
Nie mogę znaleźć 'Cursor.Hide' dla Cursora. – lindexi
Jeśli używasz WinForms i będzie wdrożyć tylko na komputerach z systemem Windows to jest to dość łatwe w użyciu user32 GetLastInputInfo
obsługiwać zarówno myszy i klawiatury na biegu jałowym.
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;
}
}
A potem w swojej 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;
}
}
}
eleganckie rozwiązanie, dziękuję – frameworkninja
Aby obliczyć Environment.Tickcount jest ujemny: – mikesl
należy uwzględnić Environment.Tickcount jest ujemny:
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. Przeglądarka internetowa: ukryj kursor myszy
- 2. Globalnie ukryj kursor myszy w kakao/węgiel?
- 3. VimScript: czy istnieje autocmd dla akcji podjętej po czasie bezczynności?
- 4. Ukryj wskaźnik myszy na Androidzie
- 5. JavaFX Scene Builder: kursor myszy OnMouseOver
- 6. Zmienić kursor myszy na całą stronę?
- 7. PyGame Ustaw kursor myszy z Bitmapy
- 8. Jak ukryć kursor myszy za pomocą jquery
- 9. Jak przesunąć kursor myszy za pomocą C#?
- 10. Jak zmienić kursor myszy w języku Java?
- 11. kursor myszy do nakładek map Google
- 12. Zablokuj kursor myszy podczas przeciągania w Chrome
- 13. Javafx 8 jak uczynić kursor myszy niewidoczny?
- 14. Jak wyświetlić przycisk myszy na myszy div
- 15. Aplikacja nie śpi po upływie czasu bezczynności
- 16. Zend Framework automatyczne wylogowanie po bezczynności
- 17. Po kliknięciu myszy uzyskasz położenie myszy?
- 18. Jak mogę przesłonić kursor myszy na klawiaturze Bootstrap w IE
- 19. WPF: aplikacja Czas bezczynności
- 20. Skrypt poleceń systemu Windows, który przenosi kursor myszy N pikseli?
- 21. Kursor myszy w kształcie huśtawki Java "pracujący w tle"
- 22. Zatrzymaj kursor myszy Excel z migotania na przycisku
- 23. Jak sprawdzić, czy kursor myszy znajduje się nad ekranem komputera?
- 24. Jak ukryć lub zmienić kursor myszy w nowych przeglądarkach?
- 25. Ukryj DIV po kliknięciu poza
- 26. Detekcja bezczynności w WPF
- 27. Obracanie obiektu do myszy na myszy myszką
- 28. pozycja przesuwać kursor po zagnieżdżonego contentEditable
- 29. Jak wyróżnić części mapy obrazów po najechaniu kursorem myszy?
- 30. Aplikacja WPF powolna po powrocie z trybu bezczynności
jakiej technologii? WinForm, WPF, silverlight, ASP.Net –