
プログラムの勉強を始めたばかりのものです。
Visual Studio Community 2017 を使用して C# で Windows Form Application を勉強中です。
TextBoxを配置して、例えば下記のようにKeyDownイベントで
「Ctrl + A で文字列を全選択する」といったショートカットキーを実装すると
ツール起動時に Ctrl + A を押すと全選択されるのはうまくいきますが
ビープ音と言うのでしょうか、耳障りなシステム音も鳴ります。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.A)
{
textBox1.SelectAll();
}
}
こちらを止める方法はありますか?
検索もしてみたのですが、TextBoxが単一行設定の際にEnterやEscキーを押すとビープ音が鳴ることに対しての対策ばかりがヒットします。
「単一行テキストボックスでEnterやEscapeキーを押した時にビープ音が鳴らないようにする」
http://dobon.net/vb/dotnet/control/tbsuppressbee …
こちらに書かれているように「e.Handled = true;」を追加してもビープ音は鳴りました。
こちらについて何かお分かりになる方いらっしゃいましたら
アドバイスをお願いします。m(_ _)m
No.1ベストアンサー
- 回答日時:
KeyDownではSuppressKeyPressプロパティを使用。
もしくはKeyPressで判断しましょう。
KeyDownにてSuppressKeyPress=trueとした場合、KeyPressイベントは走行しなくなります。
そのことも考慮して、どちらで実装するかでしょう。
ちなみに、Multiline=falseの時は、Ctrl+Aは標準で動作し、ビープ音も鳴りません。
【KeyDownの場合】
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
// Multiline時のCtrl+A
if (textBox1.Multiline && e.KeyData == (Keys.Control | Keys.A))
{
textBox1.SelectAll();
e.SuppressKeyPress = true;
return;
}
}
【KeyPressの場合】
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Multiline時のCtrl+A
if (textBox1.Multiline && e.KeyChar == '\u0001')
{
textBox1.SelectAll();
e.Handled = true;
return;
}
}
naktakさん
ご回答ありがとうございます!
Multiline = True で音が鳴って困っていたのですが
教えていただいた記述で音が鳴らなくなりました‥!
とても助かりました。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LNK2019:未解決の外部シンボル ...
-
スレッドの作成について(pthre...
-
C言語:double型での戻り値は小...
-
Arduinoでの圧電スピーカーとタ...
-
静的でないメンバ関数の呼び出...
-
gcc: incompatible pointer type
-
プログラムを教えてください。...
-
const_castのつかいどころを教...
-
戻り値を返す関数の前に(void)...
-
最早開始時間と最遅完了時刻を...
-
C言語 エラーの原因がわからな...
-
信頼区間の1.96や1.65ってどこ...
-
Enterキーを押されたら次の処理...
-
プログラムでの数字につく”f”の...
-
「Aに対するBの割合」と「Aに対...
-
C++のfor文について
-
変数とパラメータとは違うもの...
-
C言語のプログラミングですが、
-
main.c:7:43: warning: implici...
-
For文の終了値を関数にしても問...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
静的でないメンバ関数の呼び出...
-
既定のコンストラクタがありま...
-
戻り値を返す関数の前に(void)...
-
C++にてtemplateで受け取った任...
-
【gcc・cygwin】multiple defin...
-
const_castのつかいどころを教...
-
多重定義が起きている?--lnk20...
-
gcc: incompatible pointer type
-
(void)0 はどんな意味ですか
-
C# KeyDownイベントでショート...
-
pictureboxの画像を削除するには?
-
Notepad++の関数リスト表示の変...
-
C#でテンキーの操作は可能でし...
-
アドレスを指定して関数を呼び...
-
ウインドウの移動禁止
-
画面上をクリックするとクリッ...
-
C# Controls.Addで動的に配置し...
-
別ソースファイル、同クラス名...
-
DLLの関数呼び出しで引数がある...
-
プログラム作成教えてください...
おすすめ情報