
プログラムの勉強を始めたばかりのものです。
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も見ています
-
PreviewKeyDownイベントが2回発生する
Visual Basic(VBA)
-
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
-
4
VB.NETのCreateObject()にあたるものをC#で
Visual Basic(VBA)
-
5
VB.NETで他のEXEを実行させる
Visual Basic(VBA)
-
6
チェックボックスを操作できないようにしたいです VB.NET
Visual Basic(VBA)
-
7
CloseとDisposeの違い
Visual Basic(VBA)
-
8
VB.NET ボタン押下で一つ前のコントロールへ
Visual Basic(VBA)
-
9
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
10
C# DataGridViewで複数選択したセルに同じ値を一括で入力するには
C言語・C++・C#
-
11
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
12
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
static constメンバ変数(配列)...
-
ソケット通信時のWSACleanup処...
-
Arduinoを使ってMIDI機器のコン...
-
プログラミング教えてください
-
二重定義の回避法
-
既定のコンストラクタがありま...
-
_beginthreadにて発生するコン...
-
C++にてtemplateで受け取った任...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
(void)0 はどんな意味ですか
-
CTabCtrl:TABインデックス単位...
-
const_castのつかいどころを教...
-
メッセージマップ(ON_CONTROL_...
-
カノニカルモードの設定について
-
静的でないメンバ関数の呼び出...
-
C/C++でのScene管理について
-
gcc: incompatible pointer type
-
int main()、void main()、void...
-
「Aに対するBの割合」と「Aに対...
-
複数桁10進数の*桁目だけを抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
静的でないメンバ関数の呼び出...
-
【gcc・cygwin】multiple defin...
-
戻り値を返す関数の前に(void)...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
const_castのつかいどころを教...
-
既定のコンストラクタがありま...
-
C# Controls.Addで動的に配置し...
-
(void)0 はどんな意味ですか
-
C#でラジオボタンを設定に記録...
-
ウインドウの移動禁止
-
Notepad++の関数リスト表示の変...
-
Delphiの定数とローカル変数の...
-
typedef unsigned int UINT;が...
-
int main()、void main()、void...
-
C言語 extern について
-
void*型の配列について
-
VC++でGetKeyboardStateがうま...
-
_beginthreadにて発生するコン...
-
gcc: incompatible pointer type
おすすめ情報