DOBON.NET DOBON.NETプログラミング掲示板過去ログ

KeyPressイベントのKeyCharで( Shift + 6)キー打鍵で&が表示されない

環境/言語:[OS : Windows Vista Home Premium / 言語 : C# / .NET Framework : 3.0]
分類:[.NET]

前略
・はじめて投稿します。
<やりたいこと>
キーボードから打鍵した表示可能文字をラベルに表示する。

<解決したい問題>
・C#でKeyPressイベントから下記コードのようにKeyCharをつかって打鍵文字を
 検出してラベルに表示しようとすると次のような問題が発生する。
(Shift+ 6 ) キーを押しても "&"が表示されなくて、何も表示されない。 

 他のキーはシフトキーを押しての操作も含めラベルには
”a b c A B C , . ; + : *  { { ……”と正常な表示がされます。

★ コード
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
string str = String.Format("{0} = {1}", "e.KeyChar", e.KeyChar);
label1.Text = str;
}
・バグなのでしょうか? 何か間違っているのでしょうか?
 Visual Studio 2008 Profesional を使っています
・BCBは10数年やっていましたが、C#は2〜3ヶ月前からはじめた初心者です。
 何かヒントでも結構ですからおしえていただければ幸いです。
■No23202に返信(ysaitoさんの記事)

とりあえず

Label.UseMnemonic プロパティ
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.label.usemnemonic(VS.80).aspx

を設定すると良いと思います。

> ・BCBは10数年やっていましたが、C#は2〜3ヶ月前からはじめた初心者です。
>  何かヒントでも結構ですからおしえていただければ幸いです。

うーん…特に C# 特有の機能というわけでもないかと思っていましたが、そうでもないのかな。
困ったときは MSDN を上から下まで全部目を皿のようにして見てみるといいですよ。
前略

・さっそくありがとうございます。

> Label.UseMnemonic プロパティ
> http://msdn.microsoft.com/ja-jp/library/system.windows.forms.label.usemnemonic(VS.80).aspx
> を設定すると良いと思います。

・label1.UseMnemonic = false;
 を追加したところ ”& ”も表示されるようになりました。
 てっきりコンパイラのバグと思っていました。

今後ともよろしくお願いします

DOBON.NET | プログラミング道 | プログラミング掲示板