C#でハングマンプログラムを作成しています。キーボードボタンを押すと、フォームのボタンをクリックします。これはどこに書きますか? form1.load()で?C#メソッドをトリガーするためのキーボードボタン
答えて
キーボードイベントへの応答としてコードを書き込む場合は、Form.Load()
にコードを書き込まないでください。フォームが最初に読み込まれる(画面に表示される)ときに、そのイベントが発生します(内部のコードが実行されます)。
KeyPress
eventを処理し、そのコードを代わりに書くのはどうですか?あなたのフォームにもそのイベントの1つがあります。
サンプルコード:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
Button1.PerformClick();
}
PerformClick
methodがButton
controlためClick
イベントを生成します。あなたは扱うことができるという同様の方法でClick
イベント:このイベント処理のものは、あなたに混乱し
private void Button1_Click(object sender, EventArgs e)
{
// do something in response to the button being clicked
// ...
MessageBox.Show("Button clicked!");
}
場合は、C#と/または.NET Frameworkようにプログラミングに良い本をピックアップしていることを確認してくださいあなたはそれをうまく学ぶことができます。それは非常に重要で、スキップするものではありません!
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Left)
{
// Do your hang job
Button_Click(sender, EventArgs.Empty);
}
}
あなたが興味のあるイベントに登録して後で処理する必要があります。しかし、それをやり遂げる方法を読んで勉強する必要がある前に。 C#では難しい問題ではありません。イベントをサブスクライブ
http://msdn.microsoft.com/en-us/library/ms171534.aspx
ある時は、ボタンをクリックしてからとKeyDownイベントから呼び出すことができる関数を作成します。
あなたは、あなたがフォーム上で直接KeyPressイベントを実装する必要があり、フォーム上のKeyPreviewプロパティを有効にする必要があります。
Form1.KeyPress +=new KeyPressEventHandler(Form1_KeyPress);
private void Form1_KeyPress(object sender, KeyPressEventArgs e) {
if(e.KeyCode == someKey) {
button1.performclick();
}
}
いいえ、あなたはイベントがしたいれているフォームを選択してくださいその後、プロパティペインに移動し、イベントタブを選択し、KeyPressイベントに移動し、ダブルクリックしてコードを追加します。
Normalyこのような何かがちょうど文場合は、より多くを追加することができ、あなたがコントロールしたいキーの押下を判断するためには、keyChar値をグーグル、あなたがやりたいことになります。
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
Button1.PerformClick();
}
//Other if statements if you want to keep an eye out for other keyPresses
}
[編集]私はちょうどあなたがかもしれない思い出しましたButton1.Text
プロパティに&Button1
というマークを付ける必要がある場合は、ショートカットを考慮する必要があります。この方法では、「B」に下線が引かれ、alt+B
のボタンクリックイベントを実行するショートカットを受け入れます。 &シンボルは、ショートカットに使用する文字の前に設定されています。さまざまなボタンに同じ文字を使用しないでください。
フォームのプロパティKeyPreviewをtrueに設定することを忘れないでください。 こちらをご覧ください: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.keypreview%28v=VS.100%29.aspx –
@GorgiRankovski私は ' KeyPreview = false;そしてそれは働いた。私はあなたが言っていることを理解していますが、それは論理的ですが、私はあなたのために、なぜそれがうまくいっているのか、そのプロパティが偽であっても、あなたには正当性がありません。何か案は? –
私の以前のコメントについて、私は何をテストしたか(空のフォーム)について考え、同じコントロールをいくつかのコントロールでテストしました。だから 'KeyPreview = false; 'を設定すると、KeyPressイベントを起動せずにコントロールとやりとりすることができるので、KeyPreviewプロパティをアクティブにする必要があります。しかし、 'KeyPreview = true;'はキーを押すたびにKeyPressイベントを発生させるので、アクションを起動するキー(sugegsted if文)を設定するか、キーボードのすべてのヒットがそれらのアクションを実行するか。それは意図されているかもしれませんが、ただあなたは何が起こるかを知っています。 –
- 1. IE9コントロールのキーボードボタン
- 2. メソッド、Google Apps Scriptでのユーザーログインのためのトリガー
- 3. MenuItemでメソッドをトリガーする
- 4. Androidキーボードボタンの変更
- 5. ネットワークプロトコル解析のためのC++メソッド
- 6. USBデバイスボタンをC#のキーボードボタンをシミュレートするように変換する方法は?
- 7. テストを実行するためのメソッドの整理 - C#
- 8. タイムゾーンを変換するためのC#拡張メソッド
- 9. Bashでキーボードボタンをシミュレートする方法
- 10. 在庫を減らすためのトリガー
- 11. Kindleの火災のキーボードボタン
- 12. 左/右のキーボードボタンの使用
- 13. スネークゲームのための単一のメソッドを遅らせるC#
- 14. キーボードボタンとしてのアプリケーションボタン
- 15. C#でメソッドを呼び出すためのタイマーの作成
- 16. C++コンストラクタを呼び出すためのさまざまなメソッド
- 17. カスタムNSTableViewCellをクリックしたときにViewControllerでメソッドをトリガーする
- 18. 重複する電子メールアドレスを確認するためのトリガー
- 19. ContextMenuの可視性のためのトリガー?
- 20. 計数のためのトリガーの作成
- 21. アップデートのためのApexトリガーのテストクラス
- 22. Azureのストレージファイル共有のためのトリガー
- 23. Sqlite:行の値の数を制限するためのトリガー
- 24. moviePlaybackCompleteメソッドの強制トリガー
- 25. インタフェースをモックするためのメソッド
- 26. Emacs:Pythonをデバッグするためのメソッド
- 27. std :: map操作のためのトリガー
- 28. 別のテーブルエラーを更新するためのトリガー
- 29. テーブルからの削除を防止するためのトリガー
- 30. MySQLが挿入後のカウントを更新するためのトリガー
私たちの答えがあなたの質問に答えることができないことが分かった場合は、さらに詳しい情報を入力して質問を編集してください。あなたの答えがすでにある場合は、そのような印をつけて正解を教えてください。ありがとう。 –