
お世話になります。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マルチスレッドプログラムから...
-
Androidでこのエラーを解決した...
-
一定のスペースを空けて端を揃...
-
JavaScriptでcgiの戻り値を受け...
-
Javaで改行などが出来ないのです。
-
パソコンキーボードで時分秒を...
-
10個の要素数を持つ配列に0~99...
-
C言語のポインターに関する警告
-
EclipseでJava
-
へロンの公式 java
-
LU分解を利用した逆行列のプロ...
-
BCD形式で時刻を!
-
VBでbyte配列型のインスタンス...
-
excel vba 時間計算と条件分岐...
-
Javaで何パーセント%かを表示...
-
Java配列の問題を教えてくださ...
-
[至急]Project Euler:#17Number...
-
ダブルクォーテーション(””)...
-
javaで質問です。 文字列2023/2...
-
ソースコード記載のHPを教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
ボタンの複数割り当てについて
-
コンボボックスを使う時の警告
-
C# DataGridView列カスタマイズ
-
Junitテストでvoid戻り値メッソ...
-
C# 矢印キーの取得
-
C# WinForm のDataGridView Cel...
-
C# visibleプロパティをfalseに...
-
C#でのWNetAddConnection3の使...
-
GOF本のStrategyのJava版での質...
-
イメージボタンを作成したいの...
-
Androidでこのエラーを解決した...
-
以下のコードのどこが問題なの...
-
Javaでウィンドウ作成について
-
C#で、定数をフラグ(if文)に...
-
C# 親フォームで指定した値を...
-
javaアプレット repaintのタイ...
-
透過色について
-
負の数を取得するには?
おすすめ情報
回答ありがとうございます。
>this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form2_KeyDown);
はい、ありました。
>if 文が変な感じなのは置いてもおけず、...
textBox2.Text = cnt.ToString();
MessageBox.Show("sssss ");
は、動作確認のために、記述したものです。
これも表示されないってことはキーイベント自体が認識されていないんでしょうか?