単一行テキストボックスでEnterやEscapeキーを押した時にビープ音が鳴らないようにするテキストボックスが単一行(MultilineプロパティがFalse)の場合、エンターキーやエスケープキーを押すと、Beep音が鳴ります。これを防ぐ方法をいくつか紹介します。 KeyPressイベントを使用する方法EnterやEscapeキーが押された時に、KeyPressイベントハンドラでKeyPressEventArgs.HandledをTrueにすれば、ビープ音が鳴らなくなります。 [VB.NET] 'KeyPressイベントハンドラ Private Sub TextBox1_KeyPress(ByVal sender As Object, _ ByVal e As KeyPressEventArgs) _ Handles TextBox1.KeyPress 'EnterやEscapeキーでビープ音が鳴らないようにする If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Enter) OrElse _ e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Escape) Then e.Handled = True End If End Sub [C#] //KeyPressイベントハンドラ private void TextBox1_KeyPress(object sender, KeyPressEventArgs e) { //EnterやEscapeキーでビープ音が鳴らないようにする if (e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.Escape) { e.Handled = true; } } 補足:.NET Framework 2.0からは、KeyDownイベントハンドラでKeyEventArgs.SuppressKeyPressプロパティをTrueにすることによっても、同様のことができます。 ProcessDialogKeyメソッドをオーバーライドする方法フォームのProcessDialogKeyメソッドをオーバーライドして、EnterやEscapeキーが押された時に、何もせずにTrueを返すという方法もあります。 以下のコードは、テキストボックス(TextBox1)のあるフォームのクラスに記述してください。 [VB.NET] Protected Overrides Function ProcessDialogKey( _ ByVal keyData As Keys) As Boolean 'TextBox1でEnterを押してもビープ音が鳴らないようにする If TextBox1.Focused AndAlso _ (keyData And Keys.KeyCode) = Keys.Enter Then Return True End If Return MyBase.ProcessDialogKey(keyData) End Function [C#] protected override bool ProcessDialogKey(Keys keyData) { //TextBox1でEnterを押してもビープ音が鳴らないようにする if (TextBox1.Focused && (keyData & Keys.KeyCode) == Keys.Enter) { return true; } return base.ProcessDialogKey(keyData); } フォームのAcceptButton、CancelButtonプロパティを設定する方法この方法は、一行もコードを書く必要がありません。 フォームのAcceptButtonプロパティにボタン(Buttonオブジェクト)が設定されている場合は、Enterキーを押してもビープ音が鳴りません。同じように、フォームのCancelButtonプロパティにボタンが設定されている場合は、Escapeキーを押してもビープ音が鳴りません。 つまり、テキストボックスでEnterキーを押してもビープ音が鳴らないようにするには、フォームのAcceptButtonプロパティに適当なボタンを設定すればよいのです。もしAcceptButtonプロパティに設定したいボタンがフォームに無ければ、とりあえずフォームにButtonコントロールを配置してから、そのボタンをフォームのAcceptButtonプロパティに設定し、ボタンのVisibleプロパティをFalseにして、ボタンを隠します。 注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。
|
|
Copyright 2002-2008 DOBON!. All rights reserved.
|