如何在计时器或计时器中多次按键本机

本文关键字:计时器 本机 | 更新日期: 2023-09-27 18:19:37

private void timer1_Tick(object sender, EventArgs e){
if (Form.ModifierKeys == System.Windows.Forms.Keys.Control
 && Form.ModifierKeys == System.Windows.Forms.Keys.Enter)
my_translate(textbox1.text); 
}

.

试过了,但没有工作,我该怎么办?

我正在编写一个字典软件;用计时器检查确定按下的键,所以我翻译单词。我不能使用textBox1_KeyPress等,因为我从 .doc/.txt 获取文本,所以我需要计时器来获取文本。

//The code is working
private void timer1_Tick(object sender, EventArgs e){ 
    MouseButtons aa = MouseButtons;
    if (aa == MouseButtons.Middle && Form.ModifierKeys == Keys.Control)
            my_translate();
} 

.

我们有一个算法,用于计时器,当用户按下组合键时调用方法?

如何在计时器或计时器中多次按键本机

您当前的代码

if (Form.ModifierKeys == System.Windows.Forms.Keys.Control && 
    Form.ModifierKeys == System.Windows.Forms.Keys.Enter)

表示"如果按下的键等于控制键,并且按下的键等于回车键"。这永远不会发生,因为如果只按下控制键,则不会按下回车键,反之亦然。

我相信你想要这个:

if (Form.ModifierKeys.HasFlag(Keys.Control) && 
    Form.ModifierKeys.HasFlag(Keys.Enter))

这意味着"如果按下的键包括控制键和回车键"。

无论如何,您都不应该为此使用计时器。查看 Control.KeyPress 事件并改用该事件。您可以使用计时器加载文本文件,同时使用事件来处理按键。

我建议您阅读有关MSDN上的KeyPress事件的更多信息:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress.aspx