プログラムの勉強を始めたばかりのものです。
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で質問しましょう!
似たような質問が見つかりました
- ビデオカード・サウンドカード DELL XPS8100のオンボードHDMIについて 2 2023/04/15 23:08
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- CPU・メモリ・マザーボード HP製パソコンのBIOSの立上げ方を教えて下さい。 2 2022/10/28 18:28
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Windows 10 エクスプローラで希望の場所が表示できない 2 2023/06/29 15:19
- ルーター・ネットワーク機器 echoshow8の音声をBluetoothを介してパソコンで出力するやり方を教えて下さい。 3 2023/04/03 17:09
- iOS Windows OSにおける、ショートカットキーを受け取るソフトウェアの決定 5 2022/11/27 16:05
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
C#「オブジェクト参照が必要です」(初心者)
その他(プログラミング・Web制作)
-
-
4
PreviewKeyDownイベントが2回発生する
Visual Basic(VBA)
-
5
C#プログラムで、ボタンをショートカットキー付きで作りたいのですが、方
その他(プログラミング・Web制作)
-
6
C# ReadOnlyのTextBoxで
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【gcc・cygwin】multiple defin...
-
既定のコンストラクタがありま...
-
int main()、void main()、void...
-
戻り値を返す関数の前に(void)...
-
C# KeyDownイベントでショート...
-
C# Controls.Addで動的に配置し...
-
多重定義が起きている?--lnk20...
-
stddef.hって何?
-
VC++でGetKeyboardStateがうま...
-
Notepad++の関数リスト表示の変...
-
関数の戻り値がextern
-
C++でイベントドリブンなコード...
-
C++にてtemplateで受け取った任...
-
メッセージマップ(ON_CONTROL_...
-
マルチメディアタイマーの使用方法
-
クラス間でのクラスの共有?
-
string型とsbyte*型の変換
-
SC_SIZEがわからない
-
ArduinoでMouse関数を使用して...
-
void*型の配列について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Notepad++の関数リスト表示の変...
-
ArduinoでMouse関数を使用して...
-
【gcc・cygwin】multiple defin...
-
戻り値を返す関数の前に(void)...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
既定のコンストラクタがありま...
-
静的でないメンバ関数の呼び出...
-
gcc: incompatible pointer type
-
C# Controls.Addで動的に配置し...
-
int main()、void main()、void...
-
(void)0 はどんな意味ですか
-
VC++でGetKeyboardStateがうま...
-
void*型の配列について
-
C# KeyDownイベントでショート...
-
const_castのつかいどころを教...
-
H8マイコンのシリアル通信につ...
-
コールバックって・・・
-
関数ポインタについて
-
void main()って誰が最初?:AN...
おすすめ情報