如何检测正斜杠以及是否满足条件检查 Enter Key C# WPF
How to detect forward slash and if condition is satisfied check for Enter Key C# WPF
我正在开发 wpf 应用程序,它包含主 Window.xaml
和 DataGrid
以及当然里面的文章,如果用户 select 文章和按“/”,然后我应该让他编辑价格 - 用价格 解锁字段,当用户完成后他应该按回车键,然后我应该检查是否已按回车键,这样我就可以更新该商品的新价格。
首先,这就是我检查“/”是否按下的方式,因为我无法为这个键争取正确的 OEM,我害怕什么当用户在他的键盘上更改语言时可能会发生,所以我这样做了。
private void Window_PreviewTextInput_1(object sender, TextCompositionEventArgs e)
{
if (e.Text == "/")
{
if (globalTemp != null)
{
txtPrice.IsEnabled = true;
}
}
}
在我给用户更改价格的机会后,我应该在 Enter 键上更新商品价格,所以在这个条件 if (e.Text == "/")
也被点击后我如何检查,因为我看到没有 e.Key
在这个 TextCompositionEventArgs e
...
编辑:
也许我可以在这里简单地附加新事件,所以实际上我可能有两个事件,第一个检测“/”并解锁 txtPrice,另一个在按下 enter 时更新它,所以另一个事件可能看起来像这样:
private void txtPrice_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
// UPDATE PRICE HERE
}
}
谢谢大家
干杯
处理 PreviewKeyDown
事件以检测 ENTER 键按下和 PreviewTextInput
事件以检测“/”。
毕竟 ENTER 不是一个字符,“/”也不是一个键,所以分开处理这两个事件是非常有意义的。
如果您想检测组合的 ENTER +“/”组合键,您可以使用一个布尔字段来跟踪是否在按下 ENTER 之前就按下了“/”:
private bool _slash = false;
private void Window_PreviewTextInput_1(object sender, TextCompositionEventArgs e)
{
if (e.Text == "/")
{
_slash = true;
e.Handled = true;
//...
}
else
{
_slash = false;
}
}
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Enter && _slash)
{
// "/" + ENTER was pressed...
}
}
我正在开发 wpf 应用程序,它包含主 Window.xaml
和 DataGrid
以及当然里面的文章,如果用户 select 文章和按“/”,然后我应该让他编辑价格 - 用价格 解锁字段,当用户完成后他应该按回车键,然后我应该检查是否已按回车键,这样我就可以更新该商品的新价格。
首先,这就是我检查“/”是否按下的方式,因为我无法为这个键争取正确的 OEM,我害怕什么当用户在他的键盘上更改语言时可能会发生,所以我这样做了。
private void Window_PreviewTextInput_1(object sender, TextCompositionEventArgs e)
{
if (e.Text == "/")
{
if (globalTemp != null)
{
txtPrice.IsEnabled = true;
}
}
}
在我给用户更改价格的机会后,我应该在 Enter 键上更新商品价格,所以在这个条件 if (e.Text == "/")
也被点击后我如何检查,因为我看到没有 e.Key
在这个 TextCompositionEventArgs e
...
编辑:
也许我可以在这里简单地附加新事件,所以实际上我可能有两个事件,第一个检测“/”并解锁 txtPrice,另一个在按下 enter 时更新它,所以另一个事件可能看起来像这样:
private void txtPrice_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
// UPDATE PRICE HERE
}
}
谢谢大家 干杯
处理 PreviewKeyDown
事件以检测 ENTER 键按下和 PreviewTextInput
事件以检测“/”。
毕竟 ENTER 不是一个字符,“/”也不是一个键,所以分开处理这两个事件是非常有意义的。
如果您想检测组合的 ENTER +“/”组合键,您可以使用一个布尔字段来跟踪是否在按下 ENTER 之前就按下了“/”:
private bool _slash = false;
private void Window_PreviewTextInput_1(object sender, TextCompositionEventArgs e)
{
if (e.Text == "/")
{
_slash = true;
e.Handled = true;
//...
}
else
{
_slash = false;
}
}
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Enter && _slash)
{
// "/" + ENTER was pressed...
}
}