4

の基本機能を使用する必要がありますMaskedTextBox。5桁マスクは使えるけど変えたいところが少ない。現在、ボックスは次のようになっています。

MaskedTextBox

私が好きではないことが2つあります。まず、Prompt charこれは undersoce_です。空のままにするためにフィールド値を削除しました(表示したいので)が、これによりエラーが発生します - The property value is invalid。これらのアンダースコアを取り除く方法はありますか? そして2番目-整数型のエンティティプロパティの1つにこの値を使用するため、変換を行います:

if (txtNumOfAreas.Text != "")
            {
                string temp = txtNumOfAreas.Text;
                bool result = Int32.TryParse(temp, out convertValue);
                if (result)
                {
                    entity.AreasCnt = convertValue;
                }
                else
                {
                    MessageBox.Show(Resources.ERROR_SAVE, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return false;
                }
            }
            else
            {
                entity.AreasCnt = null;
            }

誰かが実験をして何かを挿入することを決定しない限り、これは正常に機能_1__5_しますが、変換は失敗しますが、最初は数字を次々に書き込むことができるようにしたいと考えています。では、これも可能ですか?

4

2 に答える 2

3

したがって、_をスペースにするには、マスク文字を単一のスペースに設定する必要があります。変換エラーを解決するには、AllowPromptAsInputプロパティをに設定falseして、ユーザーが実際にあなたの例のような結果にならないようにします。

于 2013-03-13T15:49:38.683 に答える
3

あなたの MaskedEdit は、あなたの特定の範囲の問題に対処する価値があるというよりも、より多くの問題を抱えているようです。NumericUpDown を使用することをお勧めします。

NumericUpDown の利点:

  • 削除しようとするアンダースコアプロンプトはありません
  • 数値入力のみを受け入れます
  • したがって、値を変換しようとする必要はありません。あなたは常に整数を持っています
  • 最小値と最大値のプロパティを設定すると、データ入力の自動検証が可能になります
  • データ入力の複数のモードを提供します。
    • タイピング
    • マウスで上下ボタンをクリック
    • キーボードで上下
  • 必要に応じて、アップ/ダウン ボタンを完全に非表示にすることもできます: C# WinForms numericUpDown コントロール (スピン ボックスの削除)
于 2013-03-13T15:45:34.603 に答える