-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

当他点击保存按钮时,他收到一个错误,即数量更多..

提前谢谢。请帮助我获取此代码

4

2 回答 2

0

假设cmbRateChart.SelectedValue包含相对于 RangeChart 的 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 回答
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 回答