
お世話になります。
Visual Studio 2015を使ってプログラムを作っています。
Form1を表示した状態で"Q"を押すとForm2を表示し、この状態で"Z"を押すとBBBを表示、その他のキーならsssssするように作りました(作成中のプログラムの動作確認のため)。
Form2は表示するのですが、次に"Z"を押しても何も表示されません。
どこか間違ってますか?
//---------------------------
//Form1.cs
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Q)
{
Form2 f2 = new Form2();
f2.ShowDialog();
}
}
}
}
//------------------------------
//Form2.cs
namespace Test
{
public partial class Form2 : Form
{
int cnt = 0;
public Form2()
{
InitializeComponent();
}
private void Form2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Z)
{
//cnt++;
//textBox1.Text = cnt.ToString();
MessageBox.Show("BBB");
}
textBox2.Text = cnt.ToString();
MessageBox.Show("sssss ");
}
}
}
No.2ベストアンサー
- 回答日時:
No.1の補足をみて。
>これも表示されないってことはキーイベント自体が認識されていないんでしょうか?
そこは間違いないのですけど、こちらではForm2を最前面にしている状態であればイベントは起きているのですけどね。
No.3
- 回答日時:
無論打ち込む際には【CapasLock】キーを有効にして大文字の英字にしていますよね?
【Shift】キーと小文字のままではダメでしたよ。
ありがとうございます。
なんとか原因がわかりました。
Form2にはほかにtextBoxとbuttonがいくつか置いてあるのですが、buttonにフォーカスが当たっていたためのようです。
フォーカスを当てるつもりでForm2をクリックした後にキー入力したりしてみたのですが、フォーカスはForm2には移動していませんでした。
とりあえず、textBoxとbuttonを削除して(動作確認なので)意図していた動作が確認できました。
No.1
- 回答日時:
if 文が変な感じなのは置いてもおけず、
if (e.KeyData == Keys.Z)
{
//cnt++;
//textBox1.Text = cnt.ToString();
MessageBox.Show("BBB");
}
else
{
//textBox2.Text = cnt.ToString();
MessageBox.Show("sssss ");
}
----
Form2のデザイン画面で【KeyDown】イベントをクリックして上記コードを記載したら出来ましたよ?
Form2_Designer.csに
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form2_KeyDown);
がありますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
このQ&Aを見た人はこんなQ&Aも見ています
-
いちばん失敗した人決定戦
あなたの「告白」での大失敗を教えてください。
-
【お題】甲子園での思い出の残し方
【お題】「球場の砂を持って帰る」はもう古いと思った高校球児が、甲子園で負けた際に、思い出に残そうと思って行ったこと
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
単二電池
あなたの家に何本ありますか?
-
かっこよく答えてください!!
あなたは今にも別れそうなカップルの彼女の恋愛相談に乗っています。
-
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
-
4
C# Form上に配置されたコントロールに重なるように透過GIF(PNG)を表示したい
C言語・C++・C#
-
5
C# DataGridView のヘッダーセル中央揃え
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#でのWNetAddConnection3の使...
-
C# visibleプロパティをfalseに...
-
typeid演算子を使用すると警告...
-
C#で、あるクラスのメンバーす...
-
Strutsで配列の値を取得するととき
-
パスがとおらない・・・
-
GetDIBits関数の使い方について
-
Thread.sleepのInterruptedExce...
-
C# 矢印キーの取得
-
C#でのオブジェクトのコピーに...
-
ユーザーコントロールを動的に...
-
クラス変数の使用禁止とその対処法
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
StrutsでJSPからListを受け取り...
-
オブジェクトの中のプロパティ...
-
ループ処理の際、最後だけ","を...
-
JSPやサーブレットでSystem.out...
-
<s:iterator>の値をリストで取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
C#でのWNetAddConnection3の使...
-
C# visibleプロパティをfalseに...
-
ユーザーコントロールを動的に...
-
C#でキーイベントが発生しない...
-
Junitテストでvoid戻り値メッソ...
-
C# 半角カナの文字化けについて
-
[C#.net]スレッド化された別フ...
-
C# WinForm のDataGridView Cel...
-
C# MouseHoverを何度も呼ぶには
-
C#単体テストで、UnitTestの使...
-
プログラミング(Java)じゃん...
-
C#から、C++で作成したdll内の...
-
アプレットでマウスイベントが...
-
JTable で複数行の編集
-
C# 矢印キーの取得
-
GetDIBits関数の使い方について
-
画像を順番に点滅させたい
-
正規表現
おすすめ情報
回答ありがとうございます。
>this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form2_KeyDown);
はい、ありました。
>if 文が変な感じなのは置いてもおけず、...
textBox2.Text = cnt.ToString();
MessageBox.Show("sssss ");
は、動作確認のために、記述したものです。
これも表示されないってことはキーイベント自体が認識されていないんでしょうか?