如何在 C# 中将此方法转换为 WPF

本文关键字:此方法 转换 WPF | 更新日期: 2023-09-27 18:35:14

Private Sub txtMeaning_KeyDown(sender As Object, e As KeyEventArgs) Handles txtMeaning.KeyDown
    If e.KeyValue = Keys.Enter OrElse e.KeyValue = 51 Then
        e.SuppressKeyPress = True
    End If
End Sub

E.KeyValue = 51 表示哈希键,这就是我无法在 C# 中转换为 WPF 的问题

如何在 C# 中将此方法转换为 WPF

看起来您不仅要从 VB.net 转换为C#,还要从Winforms转换为WPF。即使名称相同,这两个方法也明显不同,您没有可用的 SuppressKeyPress 方法,只有一个 Handle 方法,加上键枚举没有可用的数字符号键(我找到了),所以我通过查看修饰键和 D3 键来构造它。

话虽如此,您最好重新设计应用程序的界面以利用 WPF 为您提供的所有功能,而不是尝试逐行转换

看看这是否适合您。

if (e.Key == Key.Enter || ((e.KeyboardDevice.Modifiers == ModifierKeys.Shift) && e.Key == Key.D3 ))
{
    e.Handled = true;
}
private void txtMeaning_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyValue == Keys.Enter || e.KeyValue == 51) {
        e.SuppressKeyPress = true;
    }
}

下次使用 http://converter.telerik.com/

好的,我从我的 WPF 应用程序中提取了片段,它与您的代码不同,但它处理键盘事件

        private void handleWindowkeyUp(object sender, KeyEventArgs e)
        {
            lblMode.Visibility = System.Windows.Visibility.Visible;
            if (e.Key == Key.Space)
            {
                lblMode.Content = (lblMode.Content.ToString() == "IN") ? "OUT" : "IN";                           return;
            }
        }

        private void btnAdmin_Click(object sender, RoutedEventArgs e)
        {
            DisplayAdminWindow();
        }