【问题标题】:Making Value Comparison Between Textboxes在文本框之间进行值比较
【发布时间】:2021-03-04 00:30:21
【问题描述】:

有几个文本框,每个文本框的值都按顺序增加。我是说

textbox1.Text

哪个事件可以用来验证这个条件。在下面的代码中,我使用了 textChanged,但在场景中,例如 textbox1.Text=30 中的值,然后当我开始键入 textbox1.Text 值 5(我想输入 59)时,焦点跳转到 textbox1。比较两个文本框的正确事件是什么。

    private void textbox2_TextChanged(object sender, EventArgs e)
    {
        if (double.Parse(textbox1.Text) > double.Parse(textbox2.Text))
        {
            textbox1.Focus();
            errProvider1.SetError(textbox1, "Error");
        }
    }

【问题讨论】:

  • 什么时候需要比较它们?在提交时,然后将代码移到那里,如果它们不匹配返回错误,它将停止提交。如果是其他原因,请在文本框上离开事件/松散焦点(或任何名称)。
  • 您可以使用Leave-事件:docs.microsoft.com/en-us/dotnet/api/…

标签: c# textbox


【解决方案1】:

首先:删除 textbox1.Focus(),但保留错误的可视部分(我想这由 errorprovider 处理。

可以在用户输入时检查值,但不要打断流程(即移动焦点)!

正如 Tim 所建议的,您可以将代码移至 Leave 事件,但如果用户按下按钮(或更糟的是使用快捷方式),这可能不会被触发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多