【问题标题】:Update Label Without Button不带按钮更新标签
【发布时间】:2011-09-04 23:35:55
【问题描述】:

有没有办法让标签自动更新,这样我就不必使用按钮来发送命令。我设置的是小计文本框、折扣文本框、税收标签、运输文本框和总标签。因此,当人们填写小计、折扣和运费时,我希望计算税标,但前提是之前在表单的另一部分中选择了某个州。那么,在填写完所有这些之后,我希望填写总标签。所有这些我都知道我可以用一个按钮来完成,但我想知道是否有一种方法可以在 Visual Studio 中使用 C# 来自动化它。

谢谢。

【问题讨论】:

  • WinForms? WPF?银光? ASP.NET?单触?
  • @SLaks:这是一个 WinForms

标签: c# winforms label auto-update


【解决方案1】:

我使用 TextChanged 事件来更新文本框对之间的此类值。以下是我的一些代码摘录:

private void onLongitudeTextChanged(object sender, EventArgs e) {
           updateDistanceAndBearing();
        }

updateDistanceAndBearing 会进行一些错误检查 - 如果用户可以输入无效值然后更新其他 TextBox 的 Text 属性,这可能是一个好主意 我有文本框,但改为更新 label.Text 属性。

如果你有数字上下颠倒来获取值,它会变得更加混乱(至少我是这样发现的)

【讨论】:

  • 好的,所以它在文本框之间运行,所以我想我可以让它检查以确保所有值都已填写,并且如您所说,具有有效值。谢谢,我一会儿试试。
  • 是的,有一些方法可以在您键入时验证文本框。 NET中有ErrorProvider可以使用msdn.microsoft.com/en-us/library/…
【解决方案2】:

您可以调用方法来更新控件更改事件中的标签。

如需更多详细信息,请提供更多详细信息。

【讨论】:

    【解决方案3】:

    这不是我的想法,但应该让你非常接近......

    private void taxChanged(object sender, EventArgs e)
            {
                 updateTax();
            }
    
    
    private void updateTax()
            {
                // the rest of your logic, checking state, etc. 
                // 
                this.Tax.Text = aValueCalculatedInYourLogicAbove;
                updateTotal()
            }
    
    private void updateTotal()
            {
                // sum up whatever fields need to be summed 
                // 
                this.Tax.Text = aTotalValueCalculatedAbove;
            }
    

    【讨论】:

    • 谢谢,希望我能选择两个答案,已经选择了另一个,但是这个也不错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多