gpt4 book ai didi

c# - TextBox RaiseEvent KeyDownEvent 不起作用...(附代码)

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:24 26 4
gpt4 key购买 nike

尝试将 raiseEvent 发送到 textBox - 但我没有在 textBox 文本中看到键值。我可以看到文本框事件“OnKeyDownEvent”在断点处停止 - 但我不明白为什么 KeyEventArgs ( Key.D0 ) 的文本没有插入到文本框文本中。

代码:

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 );
}

最佳答案

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

如果您想从代码中模拟向 TextBox 中键入内容,只需将所需的文本添加到 Text 属性中即可:

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;

关于c# - TextBox RaiseEvent KeyDownEvent 不起作用...(附代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4441010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com