0

我有一个文本框tb_weight,它是计算的输入,我制作了一个带有消息框的代码,如果按下计算按钮时文本框为空,则会弹出该消息框:

if (string.IsNullOrEmpty(this.tb_weight.Text))
{
    MessageBox.Show("Textbox is empty");
}

我有与将乘以文本框中写入的值的数字对应的单选按钮。下面是其中一个按钮的代码:

if (rb_wcf1.IsChecked == true)
{                
    int a = Int32.Parse(tb_weight.Text);
    b = (a * 1.03) / 1000;
    lbl_wll.Content = Math.Round(b, 2);
}

因此,如果没有选择任何单选按钮并且文本框中没有文本,我的消息框将弹出。如果我将文本框留空并选中单选按钮rb_wcf1并按下计算按钮,则关闭消息框后程序将失败。我对编程很陌生,我不确定如何更好地设计这段代码。如果文本框为空并且单选按钮已被选中,我不希望单选按钮中的代码启动。谁能给我一些提示或指导?

4

2 回答 2

1

您已经有条件检查文本框是否为空:

if (string.IsNullOrEmpty(this.tb_weight.Text))

只需使用它:

if (!string.IsNullOrEmpty(this.tb_weight.Text))
{
    if (rb_wcf1.IsChecked == true)
    {
        // perform your calculations
    }
}

或者反转条件以作为一种保护子句退出方法:

if (!string.IsNullOrEmpty(this.tb_weight.Text))
{
    // show message
    return;
}

if (rb_wcf1.IsChecked == true)
{
    // perform your calculations
}
// etc.

有许多不同的方式来构建您的逻辑,最好结合个人偏好和您的代码当前的结构方式(我们无法从这些片段中看到)。但总的来说,您要做的只是检查文本框是否为空,您已经这样做了。


旁注:Int32.Parse()如果输入无法解析为整数,则可以抛出异常。你可以试试这个:

int a;
if (!Int32.TryParse(tb_weight.Text, out a))
{
    // show an error
    return;
}
// continue with your logic

这样,如果输入无法解析为整数,则会显示友好的错误消息而不是异常。

于 2016-03-04T13:56:58.607 回答
0

您可以在语句中检查多个资源,if但请确保您否定该IsNullOrEmpty方法

if (rb_wcf1.IsChecked == true && !string.IsNullOrEmpty(this.tb_weight.Text))
    {                
        int a = Int32.Parse(tb_weight.Text);
        b = (a * 1.03) / 1000;
        lbl_wll.Content = Math.Round(b, 2);
    }

你也可以使用IsNullOrWhitespace,它也过滤掉只有空格的字符串,即:“”不是空的,它有空格

于 2016-03-04T14:00:09.853 回答