.NET Maui自定义文本框按键事件处理

5

在 .Net Maui 中,是否有一种方法可以捕获自定义输入控件的按键事件?例如,如果我有以下类:

public class MyEntry : Entry
{

}

我希望每当用户在输入/聚焦输入框时按下Tab键,就能执行一个动作。


你需要使用tab键吗?你可以选择其他键吗?我这样问是因为tab键有特定功能(聚焦到下一个组件),我不确定你是否可以覆盖它。 - Riccardo Minato
1
也许可以像这样 https://dev59.com/4cTra4cB1Zd3GeqP8HWJ - Bas H
没有可用的EventManager,而且它不一定是选项卡,也可以是例如shift + space。 - Ali
有人找到了答案吗?据我所知,Maui不支持KeyPress、KeyUp和KeyDown事件。我正在使用Zebra扫描枪,尝试捕获F1到F12或P1和P2键。它们在TextChanged事件中没有触发任何内容,这似乎是唯一接近的事件。 - D. Kermott
1个回答

2
如果您使用的字符被 Entry 所识别,那么这对您可能有效。
public class MyEntry : Entry
{
    public MyEntry()
    {
        TextChanged += MyEntry_TextChanged;
    }

    private void MyEntry_TextChanged(object sender, TextChangedEventArgs e)
    {
        if (e.OldTextValue != null
            && e.NewTextValue.Length <= e.OldTextValue.Length)
        {
            return;
        }

        if (e.NewTextValue.Last() == /*Insert your character here*/)
        {
            // Do your things
        }
    }
}

如果你在键盘上按下的键具有其他意义,无法被识别为可写入Entry的字符,则此方法将无效。


2
谢谢,但我确实在寻找一个不会触发此事件的Shift + Backspace或Tab。 - Ali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接