2008-10-06 13 views
6

Tôi đã cố gắng ghi đè WndProc, nhưng không có thông báo nào hiển thị khi dán sự kiện.Cách bắt Control-V trong ứng dụng C#?

Sau đó, tôi đã cố gắng để tạo bộ lọc tùy chỉnh và sử dụng phương pháp PreFilterMessage tôi đã có thể nắm bắt thông điệp với giá trị 257 (sự kiện KeyUp), nhưng đó là không đủ ...

Trả lời

17

Sử dụng:

protected override void OnKeyDown(KeyEventArgs e) 
{ 
     if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control) 
     { 
      MessageBox.Show("Hello world"); 
     } 
     base.OnKeyDown(e); 
    } 

Make chắc chắn biểu mẫu KeyPreview = true.

+5

FYI - Đó không phải là tôi đặt câu hỏi – Goran

+0

điều gì về nhấp chuột phải -> dán? – Haoest

+0

Trước tiên, bạn cần triển khai tính năng này (sử dụng dải menu ngữ cảnh tôi đoán). Bạn vẫn có toàn quyền kiểm soát nó – Goran

2

Bạn có thể làm điều này bằng cách:

  • Chặn tổ hợp phím Ctrl + V trong KeyDown (hoặc KeyUp) của mẫu của bạn
  • Tạo một menu trong hình thức của bạn có chứa một tùy chọn Paste có tổ hợp phím Ctrl + V phím tắt (điều này có thể tốt hơn vì bạn sẽ có người dùng tìm kiếm các tùy chọn)
  • Chặn thông báo KEYDOWN như bạn đã mô tả trong câu hỏi và kiểm tra xem Ctrl có được nhấn vào lúc đó hay không (Tôi nghĩ đây là khó khăn nhất trong số 3) .

Cá nhân tôi sẽ sử dụng tùy chọn trình đơn.

Các vấn đề liên quan