アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
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 ");
}
}
}

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    >this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form2_KeyDown);
    はい、ありました。

    >if 文が変な感じなのは置いてもおけず、...
    textBox2.Text = cnt.ToString();
    MessageBox.Show("sssss ");
    は、動作確認のために、記述したものです。
    これも表示されないってことはキーイベント自体が認識されていないんでしょうか?

      補足日時:2018/02/09 19:11

A 回答 (3件)

No.1の補足をみて。



>これも表示されないってことはキーイベント自体が認識されていないんでしょうか?

そこは間違いないのですけど、こちらではForm2を最前面にしている状態であればイベントは起きているのですけどね。
    • good
    • 0

無論打ち込む際には【CapasLock】キーを有効にして大文字の英字にしていますよね?


【Shift】キーと小文字のままではダメでしたよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
なんとか原因がわかりました。
Form2にはほかにtextBoxとbuttonがいくつか置いてあるのですが、buttonにフォーカスが当たっていたためのようです。
フォーカスを当てるつもりでForm2をクリックした後にキー入力したりしてみたのですが、フォーカスはForm2には移動していませんでした。
とりあえず、textBoxとbuttonを削除して(動作確認なので)意図していた動作が確認できました。

お礼日時:2018/02/10 08:19

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

がありますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A