2012-01-19 13 views
2

私はVB.netで作成したフォームを持っています。ユーザーから何らかの情報を取得するために使用されます。フォームはデータソースにバインドされていません。Vb.netのcomboboxのformatstringプロパティが機能しません。

このフォームのコンボボックスを使用してコストを入力します。ユーザーが入力した値を通貨形式で表示する必要があります。私は、コンボボックスのFormatStringプロパティと選択された通貨の省略記号ボタンから開くFormat String Dialogを使用しました。これにより、C2がFormatStringプロパティに追加されます。

私のアプリケーションを実行すると、この形式は、番号が入力されたとき、またはコンボボックスから出るときにコンボボックスに入力された値には適用されません。

私には何が欠けていますか?

+0

コードを投稿できますか? – Dan

+2

このプロパティは、バインドされたコントロールに対してのみ機能します。 –

答えて

0

FormattingEnabledプロパティをTrueに設定します。

+0

申し訳ありません - FormattingEnabledもTrueに設定されているはずです。 – user1144318

0

FormatStringプロパティは、データバインドコントロールに対してのみ機能します。ただし、コントロール内の入力は、ChangeまたはLeaveイベントのToString()メソッドでもフォーマットできます。

以下のコードサンプルは、フォーカスが制御されると、コンボボックスのテキストを既定の通貨にフォーマットします。エラー処理はelse句で行うことができます。

private void comboBox1_Leave(object sender, EventArgs e) 
{ 
    string s = comboBox1.Text; 
    decimal result; 
    if (Decimal.TryParse(s, out result)) 
    { 
     comboBox1.Text = result.ToString("C2"); 
    } 
} 
関連する問題