2011-04-11 51 views
0

基本上,我有一个面板内的文本框。在v1.1框架中,像ctrl + C和ctrl + V这样的快捷键对于文本框并不是隐含的,而必须针对KeyUp事件进行编码。所以,我创建了一个通用类,它继承了文本框,并有一个事件处理程序用于通过键盘快捷键进行复制和粘贴。 我有的问题是,当我按Ctrl + V在面板中的文本框内双倍复制文本。我在想,这可能是因为面板(可滚动控件)已经设置了用于粘贴的KeyUp事件,并且这个事件先发生,然后是我写的。我在想,如果有重写面板的KeyUp事件,所以它不会触发粘贴? (如果我的逻辑正确)欢迎任何想法,为什么发生双贴。 (双贴只发生在一个文本框是在面板内部)面板内的文本框.NET 1.1 KeyUp

private void dbTextBox_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) 
{ 
if (e.KeyData == (Keys.Control | Keys.C)) (sender as TextBox).Copy(); 
if (e.KeyData == (Keys.Control | Keys.V)) (sender as TextBox).Paste(); 
} 
+0

可以共享的代码片断什么的关键了事件中发生了? – reggie 2011-04-11 12:17:45

+0

'私人无效dbTextBox_KeyUp(对象发件人,System.Windows.Forms.KeyEventArgs E) \t \t { \t \t \t如果(e.KeyData ==(Keys.Control | Keys.C))(发送方被作为文本框)。复制(); (e.KeyData ==(Keys.Control | Keys.V))\t(sender as TextBox).Paste(); \t \t \t \t}' – mariusgherman 2011-04-11 12:29:49

回答

0

你试过e.Handled = true;