2009-12-09 54 views
10

Tôi có một số hộp văn bản trên biểu mẫu cửa sổ.Làm cách nào để cho phép CTRL-V (Dán) trên Hộp văn bản Winforms?

Tôi không thể dán văn bản vào bất kỳ người nào trong số họ bằng CTRL-V, mặc dù tôi vẫn có thể nhấp chuột phải và chọn dán. Điều này khá là khó chịu.

Tôi đã thử điều này với KeyPreview của biểu mẫu là cả đúng và sai. TextBox.ShortcutsEnabled cũng đúng.

+1

Không thực sự liên quan đến mã này nếu các hộp văn bản KHÁC không có sự kiện nào giống như vậy? –

+0

Đồng ý, tôi đã chỉnh sửa câu hỏi để phản ánh điều đó. –

+0

Có phải mẫu đơn được đề cập là mẫu "trẻ con" không? –

Trả lời

15

Kiểm tra để xem nếu bạn có một thực đơn về hình thức với một phím tắt Ctrl-V.

+1

Bingo. Bản thân biểu mẫu không có menu, nhưng cha mẹ MDI của nó đã làm. Đó là menu "Chỉnh sửa" mặc định mà thanh menu cung cấp. Tôi đã xóa phần Chỉnh sửa khỏi menu và tất cả đều trở lại bình thường. –

+1

Rất tiếc. Big Cảm ơn về điều này. Tôi đã có tình trạng tương tự, phụ huynh MDI đã cắt ngắn. – granadaCoder

+1

@granadaCoder: vâng, nó/nên/gây phiền nhiễu khi điều trên ... ở đó ... ảnh hưởng đến thứ xuống ... ở đây. –

4

Mã bạn đã đăng không có liên quan gì đến vấn đề Ctrl + V của bạn, điều đó là chắc chắn. Không có gì khác tôi có thể nói cho bạn trừ khi bạn đăng thêm một số mã.

Không cần mã đặc biệt cho Ctrl + V, nhưng tôi đoán là bạn cần phải đảm bảo rằng bạn có YourTextBoxId.ShortcutsEnabled được đặt thành True.

+2

cảm ơn và tôi đã chỉnh sửa câu hỏi, nhưng điều này đáng lẽ phải là một nhận xét. –

+0

Tôi đã cập nhật câu trả lời của mình, vui lòng xem câu trả lời. –

+0

Tôi đã kiểm tra, nó được đặt thành true. –

9

Đoạn mã dưới đây sẽ giúp:

private void textBox1_KeyUp(object sender, KeyEventArgs e) { 
    if (e.KeyData == (Keys.Control | Keys.V)) 
     (sender as TextBox).Paste(); 
} 
+1

Một công việc tốt đẹp xung quanh, nhưng tôi sẽ phải thêm mã cho cắt và sao chép là tốt. Tôi muốn trở lại hành vi mặc định. –

+0

Điều này sẽ dán khi chỉ một V được nhấn, phải không ?! –

+0

@Josh: không có trong môi trường của tôi. Dấu 'v' vẫn là 'v', trong khi sự kết hợp giữa phím điều khiển và phím 'v' trở thành hành động dán. – Webleeuw

1

Vâng .. Tôi biết điều này được trả lời nhưng tôi nghĩ tôi sẽ ném 2cents của tôi chỉ để cho vui. Tôi cũng có một vấn đề tương tự. Đặt giá trị TextBox.ShortcutsEnabled thành True không làm gì cho tôi. Tôi đã rất ngạc nhiên khi thấy ghi chú của Microsoft ở đây: http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.shortcutsenabled.aspx về vấn đề này. Khá thú vị để nói rằng ít nhất.

Cho rằng, tôi vừa triển khai chức năng thông qua trình xử lý chính ngay cả khi được chỉ ra trong bài đăng của Webleeuw.

+0

Tôi sẵn sàng trả lời câu hỏi này vì đã có con mắt quan tâm và thấy nhận xét đó. // Điều khiển TextBox không hỗ trợ phím tắt.// Nói gì ?? Nice tìm PunkConservative. – granadaCoder

2

Tôi cũng được thông qua cùng một vấn đề. sau rất nhiều googling cuối cùng tôi đã tìm ra giải pháp. Đó là bởi vì trong lối tắt arllic + ctrl đã được định nghĩa (Edit menu-> Paste). Sau khi loại bỏ này ... nó làm việc tốt cho tôi .... Hy vọng rằng nó sẽ giúp ....

+0

Đó là vấn đề, và nó xảy ra trên mẫu MDI của tôi (như đã đề cập ở nơi khác trên bài đăng này của người khác.) – granadaCoder

2

Việc kiểm soát TextBox không hỗ trợ CTRL +Một khóa shortcut khi giá trị tài sản Multiline là đúng .

+0

Bạn nói đúng, nó nói như vậy trong tài liệu: http://msdn.microsoft.com/en- us/library/system.windows.forms.textboxbase.shortcutsenabled.aspx – user1032613

-1

Bạn có thể nhận xét đã được gán cùng một lối tắt cho điều khiển khác, từ biểu mẫu designer.cs/.vb của biểu mẫu của bạn. Trong trường hợp của tôi, tôi giải quyết nó cho menu trong sau cách

//this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys) 
((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C))); 
1

Đến thuộc tính cho điều khiển:

Properties> Hành vi> Phím tắt Enabled = true

hoàn thành công việc - bây giờ sẽ chấp nhận cửa sổ mặc định phím tắt cho điều khiển này

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