Làm thế nào để bạn nhận được tất cả các nhấp chuột để thực hiện sự kiện? Tôi nhận thấy nếu bạn nhấp quá nhanh, nó cho rằng bạn đang nhấp đúp và không gửi các nhấp chuột tới trình xử lý sự kiện. Có cách nào để có được tất cả các nhấp chuột không?WinForms vô hiệu hóa nhấp đúp và chấp nhận tất cả nhấp chuột?
Trả lời
Không chắc tại sao câu hỏi này có tiền thưởng, câu trả lời được chấp nhận phải khá gần với giải pháp. Ngoại trừ việc bạn nên sử dụng MouseUp thay vì MouseDown, người dùng của bạn thường mong đợi một hành động nhấp chuột có hiệu lực khi anh ta nhả nút. Trong đó cung cấp back-out "oops, không có nghĩa là nhấp vào nó, di chuyển chuột để nó bị bỏ qua" tùy chọn.
Tuy nhiên, đối với các điều khiển Winforms tích hợp, như PictureBox, điều này có thể cấu hình với phương thức Control.SetStyle(). Thêm một lớp mới vào dự án của bạn và dán mã được hiển thị bên dưới. Biên dịch. Thả điều khiển mới từ phía trên cùng của hộp công cụ:
using System;
using System.Windows.Forms;
class MyPictureBox : PictureBox {
public MyPictureBox() {
this.SetStyle(ControlStyles.StandardDoubleClick, false);
}
}
Tuy nhiên, hãy cẩn thận vì điều này sẽ không hoạt động đối với lớp .NET bao bọc điều khiển Windows hiện có. Giống như TextBox, ListBox, TreeView, vv Cấu hình cơ bản cho đó là cờ kiểu WNDCLASSEX.style member, CS_DBLCLKS. Mã đặt cờ kiểu đó được đưa vào Windows và không thể thay đổi được. Bạn cần loại phẫu thuật khác nhau để chuyển một lần nhấp đúp vào một lần nhấp. Bạn có thể làm như vậy bằng cách ghi đè phương thức WndProc(), tôi sẽ đưa ra một ví dụ cho TextBox:
using System;
using System.Windows.Forms;
class MyTextBox : TextBox {
protected override void WndProc(ref Message m) {
// Change WM_LBUTTONDBLCLK to WM_LBUTTONCLICK
if (m.Msg == 0x203) m.Msg = 0x201;
base.WndProc(ref m);
}
}
Chỉ cần thay đổi tên lớp nếu bạn muốn làm điều đó cho các điều khiển khác. Commandformering Winforms để làm cho nó hoạt động theo cách bạn muốn không bao giờ mất nhiều mã, chỉ cần Petzold :)
Tôi nghĩ bạn muốn đếm tất cả nhấp chuột. Nếu bạn muốn đếm số lần nhấp thì hãy đặt một biến số lượt truy cập và tăng biến đó trong sự kiện nhấp chuột. Có thể trợ giúp này cho bạn ....
Tự làm điều đó và nhấp vào nó nhanh gấp 10 lần. Bạn sẽ nhận được một số nhỏ hơn 10. Tôi muốn tất cả 10 trong số các nhấp chuột đó. – Will
Bạn muốn sử dụng điều khiển sự kiện MouseDown thay cho sự kiện Nhấp chuột. MouseDown sẽ được gọi mỗi lần chuột được "ép" trên điều khiển đó. Nhấp vào có thể không được gọi nếu hệ thống cho rằng đó là nhấp đúp. Thay vào đó, sự kiện DoubleClick sẽ được nâng lên.
- 1. OpenLayers: vô hiệu hóa phóng to khi nhấp đúp vào
- 2. Vô hiệu hóa các nhấp chuột trên NSView
- 3. Vô hiệu hóa nhấp chuột phải trong silverlight
- 4. Vô hiệu hóa nhấp chuột khi ra khỏi div
- 5. Javafx 2 nhấp và nhấp đúp vào
- 6. Nhận sự kiện nhấp đúp
- 7. Vô hiệu hóa Nút khi nhấp vào
- 8. jquery - vô hiệu hóa nhấp vào
- 9. javascript/jquery vô hiệu hóa nút gửi trên nhấp chuột, ngăn chặn đôi nộp
- 10. Những người nhấp đúp vào tất cả mọi thứ trên các trang web ... jQuery nhấp đúp vào problemo
- 11. Hộp danh sách WinForms Nhấp chuột phải
- 12. Vô hiệu hóa nhấp chuột phải vào "Silverlight" trong hộp tổ hợp
- 13. Làm cách nào để phân biệt giữa các nhấp chuột đơn và nhấp đúp trong .Net?
- 14. Vô hiệu hóa một nút gửi sau một cú nhấp chuột
- 15. Cocoa webView - Vô hiệu hóa tất cả tương tác
- 16. ListView Android khi mục là đặt tiêu điểm, vô hiệu hóa nhấp chuột
- 17. Làm cách nào để vô hiệu hóa Nhấp vào WebView?
- 18. GWT CellTable, vô hiệu hóa ButtonCell khi nhấp vào
- 19. Vô hiệu hóa lựa chọn DIV khi nhấp vào nó
- 20. Cách lấy TreeTableNode nhấp đúp?
- 21. JQuery JEditable - Làm thế nào để vô hiệu hóa khi chỉnh sửa nhấp chuột
- 22. Làm thế nào để vô hiệu hóa UIButton nổi bật trên nhấp chuột?
- 23. Vô hiệu hóa các sự kiện nhấp chuột trong chỉnh sửa XPM (Dao cạo)
- 24. Vô hiệu hóa JButton, trong khi công việc nền, để tránh nhiều nhấp chuột
- 25. Vô hiệu hóa nhấp chuột phải vào hình ảnh bằng cách sử dụng jquery
- 26. Làm thế nào để vô hiệu hóa một nút sau khi nhấp chuột đầu tiên
- 27. Làm thế nào để bạn vô hiệu hóa nhấp chuột phải bên trong một TextBox
- 28. vô hiệu hóa/bật nhấp chuột phải vào một phần cụ thể của nội dung html
- 29. Vô hiệu hóa nút sau khi nhấp vào vấn đề
- 30. Làm sạch nhấp chuột đơn nhất + nhấp đúp vào xử lý trong Silverlight?
Sử dụng sự kiện được thay thế. –
@RussellTroywest Tôi nghĩ rằng [MouseClick] (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mouseclick%28VS.80%29.aspx) sự kiện sẽ tốt hơn. Vì nâng thứ tự. –
@Michael: Theo MSDN "Hai nhấp chuột duy nhất xảy ra đủ gần đúng thời gian, được xác định bởi cài đặt chuột của hệ điều hành của người dùng, sẽ tạo sự kiện MouseDoubleClick thay vì sự kiện MouseClick thứ hai." - Đó là những gì High đang thấy. –