C# 分配+&引用;C中添加按钮的键#
我正在使用微软VisualStudio2010中的WPF应用程序制作一个计算器。我制作了标准计算器中的不同按钮,并在它们上添加了按钮单击方法。现在,我还想执行与按钮单击方法相同的任务,方法是通过敲击特定的键来执行 比如说 我有“addButton\u Click”方法,它执行以下操作:C# 分配+&引用;C中添加按钮的键#,c#,visual-studio-2010,events,event-handling,C#,Visual Studio 2010,Events,Event Handling,我正在使用微软VisualStudio2010中的WPF应用程序制作一个计算器。我制作了标准计算器中的不同按钮,并在它们上添加了按钮单击方法。现在,我还想执行与按钮单击方法相同的任务,方法是通过敲击特定的键来执行 比如说 我有“addButton\u Click”方法,它执行以下操作: private void addButton_Click(object sender, RoutedEventArgs e) { _op = 1; temp
private void addButton_Click(object sender, RoutedEventArgs e)
{
_op = 1;
temp = displayPannel.Text;
check = true;
}
现在,如果我希望“+”键在计算器中执行相同的操作,而不是使用鼠标单击“+”按钮,该怎么办。我还想使用数字键以及鼠标点击。我怎么做?MainWindow.xaml.cs
private void TextBox_PreviewKeyUp_1(object sender, KeyEventArgs e)
{
if (e.Key == Key.OemPlus || e.Key == Key.Add)
MessageBox.Show("Tada");
}
MainWindow.xaml
<TextBox Text="Hello" PreviewKeyUp="TextBox_PreviewKeyUp_1"/>
MainWindow.xaml.cs
private void TextBox_PreviewKeyUp_1(object sender, KeyEventArgs e)
{
if (e.Key == Key.OemPlus || e.Key == Key.Add)
MessageBox.Show("Tada");
}
MainWindow.xaml
<TextBox Text="Hello" PreviewKeyUp="TextBox_PreviewKeyUp_1"/>
您应该提取执行添加操作的方法。这不是强制性的,但是从handers调用方法是一种很好的做法,而不是在处理程序中包含一些大型代码,例如:
private void addButton_Click(object sender, RoutedEventArgs e)
{
PerformAdd();
}
private void PerformAdd()
{
_op = 1;
temp = displayPannel.Text;
check = true;
}
以及您的实际问题(我假设您希望创建类似Windows Calculator的内容):
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.OemPlus || e.Key == Key.Add)
{
PerformAdd();
e.Handled = true;
}
}
if (e.Key == Key.D0 || e.Key == Key.NumPad0)
textBox.Text = textBox.Text + "0";
您应该提取执行添加操作的方法。这不是强制性的,但是从handers调用方法是一种很好的做法,而不是在处理程序中包含一些大型代码,例如:
private void addButton_Click(object sender, RoutedEventArgs e)
{
PerformAdd();
}
private void PerformAdd()
{
_op = 1;
temp = displayPannel.Text;
check = true;
}
以及您的实际问题(我假设您希望创建类似Windows Calculator的内容):
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.OemPlus || e.Key == Key.Add)
{
PerformAdd();
e.Handled = true;
}
}
if (e.Key == Key.D0 || e.Key == Key.NumPad0)
textBox.Text = textBox.Text + "0";
在窗口上钩住按键事件它显示的唯一可用方法是KeyDown和KeyUp,我应该在KeyPress事件中写入什么?在窗口上钩住按键事件它显示的唯一可用方法是KeyDown和KeyUp,我应该在KeyPress事件中写入什么?非常感谢成功了。如何将事件添加到数字键?非常感谢!^成功了。如何将事件添加到数字键?哈哈,我先回答了,这更简单,我没有得到答案?它还涵盖了OEM提供的数字事件和您的add key。是的,我尝试选择这两个答案作为正确答案,它选择了他的答案:p:D我会选择你的,如果这让你高兴的话^ ^请记住,这个解决方案只有在你关注文本框时才有效。若用户单击某个按钮,并尝试键入新号码,那个么在他单击文本框之前,该号码将无法工作。(这就是我提到Windows Calculator的原因,它总是允许您在单击按钮后键入数字)。如果这就是你所需要的一切,那很好,简单的解决方案是最好的。哈哈,我先回答了,它更简单,我没有得到答案?它还涵盖了OEM提供的数字事件和您的add key。是的,我尝试选择这两个答案作为正确答案,它选择了他的答案:p:D我会选择你的,如果这让你高兴的话^ ^请记住,这个解决方案只有在你关注文本框时才有效。若用户单击某个按钮,并尝试键入新号码,那个么在他单击文本框之前,该号码将无法工作。(这就是我提到Windows Calculator的原因,它总是允许您在单击按钮后键入数字)。如果这就是你所需要的一切,那么简单的解决方案就是最好的。