gpt4 book ai didi

c# - 如何在 Eto 中捕获没有文本框的键盘输入

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:02 25 4
gpt4 key购买 nike

我有一个项目 ( Void ) 使用 Eto .NET 和 Mono 的 GUI 框架。我正在构建一个类似 Vim 的文本编辑器,它将至少具有 Vim 具有的某些模式(是的,我知道,one does not simply...)。

我的 GUI 的基本结构就是一个 FormContent 是一个 Drawable,因此我可以最大程度地灵活处理不符合 GUI 应用程序常规样式的内容。当我停止正常模式时,我已成功将 KeyUp 处理程序附加到表单,并且我有 ZQ 命令关闭窗口。

KeyUp += (sender, eventArgs) =>
{
var keyPress = eventArgs.AsVoidKeyPress();
if (keyPress != null)
{
handler(keyPress);
}
};

这对于普通模式来说很好,但对于其他模式,例如命令模式和插入模式,我希望能够捕捉特殊的组合键(即使用 CTRL 的组合),但除了我只想将内容捕获为文本。这将使我能够处理 Unicode 等。换句话说,我不只是想自己将击键转换回文本。

我试图附加一个 TextInput 事件。

Console.WriteLine("I see this, but...");
TextInput += (sender, eventArgs) =>
{
Console.WriteLine("...I don't see this, no matter what I type.");
};

我什至注释掉了我对 KeyUp 事件的订阅以查看是否存在冲突,但我没有收到任何响应。这是因为我将它直接附加到表格吗?有什么方法可以在不实际使用文本框的情况下捕获文本输入吗?

最佳答案

TextInput 事件已在开发分支(即将发布的 2.1 版本)中完全实现,您可以通过 myget 使用它喂养。这应该捕获来自 Drawable 和其他控件(如 TextBox 等)的文本输入。它用于实现新的 MaskedTextBox,它只是一个子类的 TextBox

它不应与 KeyDown/KeyUp 事件冲突,除非您将事件参数的 Handled 属性设置为 true

关于c# - 如何在 Eto 中捕获没有文本框的键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28118982/

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