首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextBox RaiseEvent KeyDownEvent无法工作... (附加代码)

TextBox RaiseEvent KeyDownEvent无法工作... (附加代码)
EN

Stack Overflow用户
提问于 2010-12-14 23:50:00
回答 1查看 1.2K关注 0票数 2

尝试通过raiseEvent连接到textBox -但我在textBox文本中看不到键值。我可以看到textbox事件"OnKeyDownEvent“在断点处停止了--但是我不明白为什么KeyEventArgs ( Key.D0 )的文本没有插入到textbox文本中。

代码:

代码语言:javascript
复制
if( currentTextBoxInFocus != null )
{
    KeyEventArgs k = new KeyEventArgs( Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, System.Environment.ProcessorCount, Key.D0 );
    //KeyEventArgs k = new KeyEventArgs( Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, Key.D0 );
    k.RoutedEvent = UIElement.KeyDownEvent;
    currentTextBoxInFocus.RaiseEvent( k );
    k.RoutedEvent = UIElement.KeyUpEvent;
    currentTextBoxInFocus.RaiseEvent( k );
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-15 10:37:38

您正在尝试使用按键事件作为输入源,而它们实际上用于指示来自操作系统的键盘输入的结果。这些事件不会导致将文本添加到TextBox。相反,它们指示何时将键盘输入输入到控件(如TextBox)中。

如果您想从代码模拟输入文本,只需将所需的文本添加到TextBox属性中:

代码语言:javascript
复制
int caret = currentTextBoxInFocus.CaretIndex;
currentTextBoxInFocus.Text = String.Format("{0}0{1}", currentTextBoxInFocus.Text.Substring(0, caret), currentTextBoxInFocus.Text.Substring(currentTextBoxInFocus.CaretIndex));
currentTextBoxInFocus.CaretIndex = caret + 1;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4441010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档