如何多次按下定时器或定时器?

时间:2013-06-22 23:41:58

标签: c# timer keypress

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();
} 

当用户按下一个组合键时,我们有一个定时器来调用方法吗?

1 个答案:

答案 0 :(得分:1)

您当前的代码

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