Text
プロパティとOnKeyPress
orOnKeyUp
イベントをオーバーライドする必要があるTextBoxから継承するカスタムコントロールを作成したときに問題が発生します。
- テキストプロパティは、テキストボックスの実際の値とは異なる値を表示するようにオーバーライドされています(単位変換の場合)
- 私が現在追加しようとしているOnKeyPress/OnKeyUpは、数値の入力のみを許可します。
KeyPressイベントがトリガーされると、更新されるテキストはbase.Text
オーバーライドの代わりになります...この問題をどのように克服するかについてのアイデアはありますか?
public override string Text
{
get
{
return base.Text;
}
set
{
displayValue = parse;
base.Text = this.ContainsFocus ? displayValue.ToString() : displayValue.ToString("N3");
}
}
protected override void OnKeyUp(KeyEventArgs e)
{
e.Handled = true;
if ((e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) ||
(e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9) ||
e.KeyCode == Keys.Decimal)
{
e.Handled = false;
}
//Code to only accept numerical buttons
base.OnKeyUp(e);
}