-4

これは私のテーブル構造 2 列のレート チャートと数量です。

rate   chart   qty
1      -5       1
6     -10       2
11    -20       3

Windowsフォームに3つのフィールドがあります

  • 1 コンボボックス
  • 1 テキストボックス
  • 1 ボタン

コンボボックスを介してratechart列の値をフェッチします。そのコードはありますが、ユーザーがコンボボックスから1〜5を選択した場合、テキストボックスに6を超えて入力できないという要件があります。

ユーザーがコンボボックスから6-10を選択した場合も同様で、テキストボックスに12を超える入力はできません

彼が保存ボタンをクリックすると、数量が多いというエラーが表示されます..

事前にt​​hx。このコードのために私を助けてください

4

2 に答える 2

0
    private void saveButton_Click(object sender, EventArgs e)
    {
        // Get value from textBox
        int number = Int32.Parse(textBox1.Text);

        // Get value from combobox
        int selcetedComboValue = Int32.Parse(comboBox1.SelectedItem.ToString());

        // Validate Values
        if (selcetedComboValue <= 5)
        {
            if (number <= 6)
            {
                // Valid Number 
            }
            else
            {
                // Invalid Number
            }
        }
        else if (selcetedComboValue <= 10)
        {
            if (number <= 12)
            {
                // Valid Number
            }
            else
            {
                // Invalid Number
            }
        }
    }
于 2012-11-12T07:30:02.600 に答える
0

cmbRateChart.SelectedValueRangeChart に関して qty 値が含まれていると仮定します。

private void textBox_Validating(object sender, CancelEventArgs e)
{
    bool cancel = false;
    int number = -1;

    if (int.TryParse(this.textBox.Text, out number))
    {
        var validRange = Convert.ToInt32(cmbRateChart.SelectedValue) * 6;
        if (number <= validRange)
            cancel = false; //passed validation.
        else
            cancel = true; //failed validation, number is not in valid range

    }
    else
        cancel = true;//failed validation: text box is not a number
    e.Cancel = cancel;
}

使用法: この関数を呼び出して検証を確認します。

this.ValidateChildren(ValidationConstraints.Enabled);

参照: Windows フォームでの検証

于 2012-11-12T07:12:57.487 に答える