Wpf 如何通过字符进入文本框?
我在焦点上有一些文本框(光标在他身上闪烁)。 现在,我想从其他usercontrol(包含按钮)发送一个事件,当按下usercontrol上的任何按钮时,该事件将在文本框中插入字符 这需要在不丢失文本框焦点的情况下。。。(文本框上的光标闪烁) 我怎么做?Wpf 如何通过字符进入文本框?,wpf,textbox,Wpf,Textbox,我在焦点上有一些文本框(光标在他身上闪烁)。 现在,我想从其他usercontrol(包含按钮)发送一个事件,当按下usercontrol上的任何按钮时,该事件将在文本框中插入字符 这需要在不丢失文本框焦点的情况下。。。(文本框上的光标闪烁) 我怎么做? (我尝试提高按键向下事件-但它不起作用)使您的按钮不可聚焦(focusable=false)。使您的按钮不可聚焦(focusable=false)。您想在其他应用程序中使用此虚拟键盘,还是仅在应用程序中使用?除此之外,如果只是您的应用程序,您是
(我尝试提高按键向下事件-但它不起作用)使您的按钮不可聚焦(focusable=false)。使您的按钮不可聚焦(focusable=false)。您想在其他应用程序中使用此虚拟键盘,还是仅在应用程序中使用?除此之外,如果只是您的应用程序,您是否只想将字符插入一个特定的
文本框
,或者任何文本框
如果它是一个用于任何应用程序的虚拟键盘,那么您将需要使用类似的Win32 API方法WinForms
有一个非常简单的用户界面
如果它只需要向一个
TextBox
添加字符,那么修改TextBox
的Text
属性要容易得多,而不是试图在其上引发事件以获得所需的行为。有一个CaretIndex
属性将告诉您在何处插入字符。除此之外,它是简单的字符串连接。您想在其他应用程序中使用此虚拟键盘,还是只在您的应用程序中使用?除此之外,如果只是您的应用程序,您是否只想将字符插入一个特定的文本框
,或者任何文本框
<StackPanel>
<TextBox Name="MainTextBox" />
<Button Content="A"
Focusable="False"
Click="Button_Click" />
<Button Content="B"
Focusable="False"
Click="Button_Click" />
<Button Content="C"
Focusable="False"
Click="Button_Click" />
<Button Content="D"
Focusable="False"
Click="Button_Click" />
<Button Content="E"
Focusable="False"
Click="Button_Click" />
</StackPanel>
如果它是一个用于任何应用程序的虚拟键盘,那么您将需要使用类似的Win32 API方法WinForms
有一个非常简单的用户界面
如果它只需要向一个TextBox
添加字符,那么修改TextBox
的Text
属性要容易得多,而不是试图在其上引发事件以获得所需的行为。有一个CaretIndex
属性将告诉您在何处插入字符。除此之外,它是简单的字符串连接
<StackPanel>
<TextBox Name="MainTextBox" />
<Button Content="A"
Focusable="False"
Click="Button_Click" />
<Button Content="B"
Focusable="False"
Click="Button_Click" />
<Button Content="C"
Focusable="False"
Click="Button_Click" />
<Button Content="D"
Focusable="False"
Click="Button_Click" />
<Button Content="E"
Focusable="False"
Click="Button_Click" />
</StackPanel>
这将在光标位置插入按钮内容(并替换所选文本)-与用户从键盘输入的内容相同。
注:如果textbox
未知,则可使用
var textbox = FocusManager.GetFocusedElement(FocusManager.GetFocusScope(this)) as TextBox;
代替FocusManager.GetFocusScope(此)
您可以将窗口设置为
如果不仅仅是文本框需要它,WinAPI函数应该会有所帮助。看
这将在光标位置插入按钮内容(并替换所选文本)-与用户从键盘输入的内容相同。
注:如果textbox
未知,则可使用
var textbox = FocusManager.GetFocusedElement(FocusManager.GetFocusScope(this)) as TextBox;
代替FocusManager.GetFocusScope(此)
您可以将窗口设置为
如果不仅仅是文本框需要它,WinAPI函数应该会有所帮助。请参见如果不从文本框中丢失焦点,则无法单击其他按钮。你为什么要这样做?好的,重点不是主要问题:)-我想使用类似按钮的虚拟键盘这是一种虚拟键盘,包含5个按钮(1、2、3、4、5),每个按钮都需要作为字符添加到文本框中。“虚拟键盘”是与2个文本框存在于同一窗口中的用户控件。我知道这两个文本框中的女巫正在关注中,所以我知道我需要将事件发送给谁。但我仍然不知道如何发送事件…您不能单击另一个按钮而不失去文本框的焦点。你为什么要这样做?好的,重点不是主要问题:)-我想使用类似按钮的虚拟键盘这是一种虚拟键盘,包含5个按钮(1、2、3、4、5),每个按钮都需要作为字符添加到文本框中。“虚拟键盘”是与2个文本框存在于同一窗口中的用户控件。我知道这两个文本框中的女巫正在关注中,所以我知道我需要将事件发送给谁。但我仍然不知道如何发送事件…但问题是我需要前后移动光标,如果我只是更改文本框的文本,那么这不是实际情况。但问题是我需要前后移动光标,如果我只是更改文本框的文本,那么这就不是实际情况。