SuppressKeyPress = true
ユーザーがENTER / RETURNキーを押したときに、MaskedTextBox
通常発生する迷惑なビープ音を防ぐように設定しています。これはうまく機能しますが、フォームをクリアMaskedTextBox
すると、期待どおりに動作しなくなります。最初に入力した文字は幻の文字で、2文字目を入力すると消えます。
例:
__.___
Set text = "0"
0_.___
User enters text
09.999
User presses ENTER
User presses Save & Next (this clears the form)
Reset text = "0"
0_.___
User enters first 9
09_.___
User enters second 9
0_.9__
ユーザーが ENTER を押す代わりに TABSキーMaskedTextBox
を押すと、これは正常に機能します (テキストは奇妙なシフトなしで正しく入力されます)。SuppressKeyPress
(しないときは 2052、するときはSuppressKeyPress
2048 SuppressKeyPress
)
を壊さずにBEEPを防ぐ方法、またはアフターMaskedTextBox
を修正する方法はありますか(それ自体のすべてではないにしても、ほとんどの方法を試しました: 、、など...)MaskedTextBox
SuppressKeyPress
MaskedTextBox
refreshText
refresh
MaskedTextBox の定義と KeyDown メソッドは次のとおりです。
//
// aTextBox
//
this.aTextBox.Location = new System.Drawing.Point(130, 65);
this.aTextBox.Mask = "##.###";
this.aTextBox.Name = "aTextBox";
this.aTextBox.Size = new System.Drawing.Size(50, 20);
this.aTextBox.TabIndex = 3;
this.aTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.general_KeyDown);
this.aTextBox.Leave += new System.EventHandler(this.validate);
general_KeyDown
次のようになります。
private void general_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.Handled = true;
e.SuppressKeyPress = true;
SendKeys.Send("{TAB}");
}
}