Tôi có một ứng dụng sử dụng NotifyIcon trong khay để ẩn/khôi phục ứng dụng, cũng như bật thông báo cho người dùng về các sự kiện ứng dụng. Ứng dụng của tôi có hàng đợi thông báo và tôi sử dụng sự kiện NotificationIcon.BalloonTipClosed để xác định thời điểm đặt lại bong bóng và hiển thị thông báo tiếp theo (nếu có thông báo trong hàng đợi). Phương pháp này dường như hoạt động tốt trong cả hai nguyên nhân thông thường (người dùng cho phép bong bóng tự đóng khi nó hết giờ và người dùng nhấp vào "X" trong bóng để buộc đóng), nhưng có trường hợp thứ ba mà BalloonTipClosed không làm ' t được gọi là:Làm cách nào để biết liệu đầu bóng trên khay hệ thống đã đóng chưa?
- Notification bóng bật lên
- trong khi nó có thể nhìn thấy, người dùng phải nhấp chuột vào biểu tượng thông báo để đưa lên trình đơn ngữ cảnh, gây ra bóng để biến mất
sự kiện BalloonTipClosed doesn' t được kích hoạt trong này Ví dụ - Tôi tìm nó là một lỗi trong khuôn khổ (tôi đang sử dụng 2.0), nhưng không ai có một ý tưởng xung quanh này? Nếu tôi không nhận được sự kiện này, ứng dụng của tôi luôn nghĩ rằng có một bóng có thể nhìn thấy (tôi có một boolean ngăn không cho nó hiển thị nhiều bong bóng cùng một lúc), và nó sẽ không bao giờ hiển thị lại biểu tượng khác, miễn là nó đang chạy.
Vấn đề ở đây là, trong khi tôi có thể chụp một sự kiện icon_click, và tôi biết bóng đã đóng cửa vào thời điểm đó, tôi 'không chắc chắn khi nào sẽ hiển thị quả bóng tiếp theo. Hiển thị nó ngay lập tức sẽ nằm trên bất cứ điều gì người dùng đang làm xuống đó. Tôi có thể làm điều đó trên một sự chậm trễ sau khi nhấp chuột, và điều này vẫn liên quan đến một bộ đếm thời gian, vì vậy tôi chỉ muốn sử dụng bộ đếm thời gian trong mọi trường hợp. – SqlRyan
Điểm tốt. Giả sử điều duy nhất mà người dùng có thể 'làm xuống đó' là kích hoạt menu ngữ cảnh, nếu bạn xử lý menu Mở và đóng sự kiện và chỉ hiển thị quả bóng tiếp theo nếu menu ngữ cảnh không được kích hoạt. Bạn cũng có thể muốn đưa ra quyết định dựa trên mục trình đơn mà người dùng chọn – Bob