
プログラムの勉強を始めたばかりのものです。
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も見ています
-
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
-
4
PreviewKeyDownイベントが2回発生する
Visual Basic(VBA)
-
5
VB.NET ボタン押下で一つ前のコントロールへ
Visual Basic(VBA)
-
6
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
7
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【gcc・cygwin】multiple defin...
-
戻り値を返す関数の前に(void)...
-
メッセージマップ(ON_CONTROL_...
-
C# Controls.Addで動的に配置し...
-
C++にてtemplateで受け取った任...
-
C# KeyDownイベントでショート...
-
const_castのつかいどころを教...
-
(void)0 はどんな意味ですか
-
既定のコンストラクタがありま...
-
プログラムを教えてください。...
-
main関数の戻り値について
-
gcc: incompatible pointer type
-
ウインドウの移動禁止
-
解凍ソフト(C++builderで作成...
-
LinuxのUbuntu19.10のQtのQImag...
-
別のファイルの値を得るには?
-
コールバック関数とクラスとの...
-
静的でないメンバ関数の呼び出...
-
アドレスを指定して関数を呼び...
-
Aの値からBの値を除するとは??
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
静的でないメンバ関数の呼び出...
-
既定のコンストラクタがありま...
-
C++にてtemplateで受け取った任...
-
多重定義が起きている?--lnk20...
-
【gcc・cygwin】multiple defin...
-
const_castのつかいどころを教...
-
戻り値を返す関数の前に(void)...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
C# Controls.Addで動的に配置し...
-
C#でテンキーの操作は可能でし...
-
int main()、void main()、void...
-
C# KeyDownイベントでショート...
-
gcc: incompatible pointer type
-
Notepad++の関数リスト表示の変...
-
(void)0 はどんな意味ですか
-
VC++でGetKeyboardStateがうま...
-
関数ポインタについて
-
void main()って誰が最初?:AN...
-
演算子のオーバーロードでコン...
-
この式の意味
おすすめ情報