gpt4 book ai didi

c# - 将 KeyDown 事件传递给其他控件

转载 作者:行者123 更新时间:2023-12-01 19:01:45 24 4
gpt4 key购买 nike

我正在编写一个 C# WinForms 应用程序,.NET 4.0。

我在 Form 上有一个 WinForms Control。用户开始使用键盘输入内容后,会出现另一个 Control。该 Control 是某种文本输入。我想将用户输入发送到该Control。当然,在它获得焦点后,它会接收所有用户键盘输入。但是当用户在 Control 出现之前开始输入时,我必须在调用它的 ShowFocus 后将第一个 KeyDown 事件传递给该控件 方法。

SendKeys.Send method是一种做类似事情的方法。但这太复杂了,而且似乎不安全。我只有一个来自 KeyEventArgsKeyData 属性的 Keys 枚举值,我想使用它,而不是将其转换为一些奇怪的字符串.

有什么好的方法可以将 KeyDown 事件从一个控件传递到另一个控件吗?

最佳答案

您可以在Form上使用PreviewKeyDown

假设您要将键盘输入发送到 TextBox textBox1:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.PreviewKeyDown+= Form1_OnPreviewKeyDown;
textBox1.Visible = false;
}

private bool _textboxEnable = false;
private void Form1_OnPreviewKeyDown(object sender, PreviewKeyDownEventArgs previewKeyDownEventArgs)
{
if (!_textboxEnable) textBox1.Visible = true;
if (!textBox1.Focused) textBox1.Focus();
}
}

关于c# - 将 KeyDown 事件传递给其他控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507946/

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