如何在 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 的问题
看起来您不仅要从 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();
}