1
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); 

}

.

やってみるけどうまくいかない どうすればいいの?

私は辞書ソフトウェアを書いています。タイマーを使用して、押されたキーを確認して単語を翻訳します。.doc/.txt からテキストを取得するため、textBox1_KeyPress などを使用できないため、テキストを取得するためのタイマーが必要です。

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

.

また、ユーザーがキーの組み合わせを押したときにタイマーがメソッドを呼び出す代替手段がありますか?

4

1 に答える 1

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

于 2013-06-23T01:48:41.860 に答える