TextBox から派生したコントロール内のテキストが常に通貨としてフォーマットされるようにしようとしています。
このように Text プロパティをオーバーライドしました。
public override string Text
{
get
{
return base.Text;
}
set
{
double tempDollarAmount = 0;
string tempVal = value.Replace("$", "").Replace(",","");
if (double.TryParse(tempVal, out tempDollarAmount))
{
base.Text = string.Format("C", tempDollarAmount);
}
else
{
base.Text = "$0.00";
}
}
}
結果:
- 値 "Text" (AmountControl.Text = "Text";) を渡すと、テスト ページのコントロールのテキストは期待どおり "$0.00" に設定されます。
- 値 7 (AmountControl.Text = "7";) を渡すと、"$7.00" が表示されるはずですが、テスト ページのコントロールのテキストは "C" に設定されています。
ここで非常に単純なものが欠けていると思います。物件のことでしょうか?または、文字列形式の方法を間違って使用していますか?