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();
}
当用户按下一个组合键时,我们有一个定时器来调用方法吗?
答案 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