Tôi muốn ẩn con trỏ chuột sau một thời gian không hoạt động và nó sẽ hiển thị khi tôi di chuyển chuột. Tôi đã cố gắng sử dụng một bộ đếm thời gian nhưng nó không hoạt động tốt. Ai có thể giúp tôi? Xin vui lòng!Ẩn con trỏ chuột sau một thời gian nhàn rỗi
Trả lời
Đây là ví dụ về cách thực hiện. Có thể bạn đã có một số thiếu logic mà được trọng tầm nhìn của con trỏ:
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;
}
}
}
Tôi không thể tìm thấy 'Cursor.Hide' cho Cursor là kiểu. – lindexi
Nếu bạn đang sử dụng WinForms và sẽ chỉ triển khai trên các máy Windows sau đó nó khá dễ sử dụng user32 GetLastInputInfo
để xử lý cả chuột và bàn phím chạy không tải.
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;
}
}
Và sau đó trong bạn 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;
}
}
}
một giải pháp thanh lịch, cảm ơn bạn – frameworkninja
Để giải thích cho Environment.Tickcount là tiêu cực: – mikesl
Cần chiếm Environment.Tickcount là tiêu cực:
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. WPF: ứng dụng Thời gian nhàn rỗi
- 2. Thời gian chờ IMAP nhàn rỗi
- 3. IIS Auto-Start không tắt Thời gian chờ nhàn rỗi
- 4. Khóa ứng dụng android sau một khoảng thời gian nhàn rỗi nhất định
- 5. VimScript: có một autocmd cho một hành động được thực hiện sau thời gian nhàn rỗi không?
- 6. Ẩn con trỏ chuột trên Android
- 7. Trình duyệt web: Ẩn con trỏ chuột
- 8. Cách ẩn con trỏ chuột với jquery
- 9. Nhàn rỗi của Python và Bàn phímInterrupts
- 10. Phát hiện nhàn rỗi hệ thống
- 11. Làm thế nào để phân biệt giữa thời gian để sống và thời gian nhàn rỗi trong ehcache
- 12. PowerShell chuột di chuyển không ngăn cản chế độ nhàn rỗi
- 13. Ẩn con trỏ chuột khi không sử dụng JavaScript
- 14. Tại sao Gosu ẩn con trỏ chuột của tôi?
- 15. nhập mô-đun vào ô nhàn rỗi
- 16. Con trỏ chuột CSS ... xoay con trỏ?
- 17. Ứng dụng WPF chậm khi trở về từ nhàn rỗi
- 18. iOS tùy chỉnh thời gian rảnh rỗi
- 19. Năm trong Thời gian rảnh rỗi
- 20. Có cách nào để cấu hình "Thời gian chờ nhàn rỗi" của Ứng dụng trong web.config không?
- 21. Tác động của hàng trăm chủ đề nhàn rỗi
- 22. Sử dụng CPU cao trong Eclipse khi nhàn rỗi
- 23. con trỏ có sẵn trong thời gian mongo db ra
- 24. ResultSet - Con trỏ: rs.next() Mất nhiều thời gian
- 25. Jquery: làm thế nào để làm cho một cái gì đó mờ dần khi chuột nhàn rỗi. Khi chuột di chuyển một lần nữa, nó sẽ biến mất!
- 26. linux: chuột kép - nhiều con chuột có nhiều con trỏ chuột?
- 27. PyGame Đặt con trỏ chuột từ Bitmap
- 28. Yêu cầu đầu tiên là rất chậm sau khi trang web ngồi nhàn rỗi với Asp.net mvc IIS6
- 29. Đối tượng theo con trỏ chuột
- 30. Làm thế nào để biết một diễn viên có nhàn rỗi không
những gì công nghệ? Winforms, WPF, silverlight, ASP.Net –