在点击事件中实现功能

时间:2016-10-07 22:26:40

标签: c#

所以我创建了一个函数ParseandWarn,如果输入不是整数,则弹出一个消息框。如果是整数,则必须在click事件上计算两个输入的总和。有多个计算,这就是我创建函数的原因。 如何在点击事件中实现/激活此功能?我收到错误,可能是解析? 我是编程新手,欢迎任何帮助。

  public void ParseandWarn()
    {
        int Invoergetal1, Invoergetal2;
        if (!int.TryParse(txtGetal1.Text, out Invoergetal1))
        {
            MessageBox.Show("U dient een geheel getal in te voeren!", "Fout", MessageBoxButton.OK, MessageBoxImage.Error);
        }
        else
        {
            if (!int.TryParse(txtGetal2.Text, out Invoergetal2))
            {
                MessageBox.Show("U dient een geheel getal in te voeren!", "Fout", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                return;
            }
        }
    }

    private void btnSom_Click(object sender, RoutedEventArgs e)
    {
        int BerekenSom = int.Parse(txtGetal1.Text) + int.Parse(txtGetal2.Text);
        txtResultaat.Text += "De som van " + txtGetal1.Text + " en " + txtGetal2.Text + " = " + BerekenSom + Environment.NewLine;

    }

2 个答案:

答案 0 :(得分:1)

这将是您正在寻找的代码。

我在ref函数中使用ParseandWarn作为参考,表示参数为modified by reference

public bool ParseandWarn(ref int Invoergetal1, ref int Invoergetal2){
    bool valid = false;
    if ((!int.TryParse(txtGetal1.Text, out Invoergetal1) || !int.TryParse(txtGetal2.Text, out Invoergetal2)) {
        MessageBox.Show("U dient een geheel getal in te voeren!", "Fout", MessageBoxButton.OK, MessageBoxImage.Error);
        return false;
    }
    return true;   
}

private void btnSom_Click(object sender, RoutedEventArgs e)
{
    int Invoergetal1, Invoergetal2;
    bool correctInput = ParseAndWarn(ref Invoergetal1, ref Invoergetal2);
    if(correctInput)
    {
       int BerekenSom = Invoergetal1 + Invoergetal2;
       txtResultaat.Text += "De som van " + txtGetal1.Text + " en " + txtGetal2.Text + " = " + BerekenSom + Environment.NewLine;
    }
}

我们将两个ints传递给函数,得到TryParse方法的结果,如果失败,它们将包含零。

现在,事件处理程序将具有值,并通过计算两个变量的总和来获得结果。

修改对无效输入进行额外检查,或null作为练习。

答案 1 :(得分:0)

首先运行ParseAndWarn()。只有在ParseAndWarn方法找到两个正确的数字输入时,才会运行以下两行。一种方法是让ParseAndWarn方法返回一个布尔值来指示Parse是否成功

public bool ParseandWarn()
{
    int Invoergetal1, Invoergetal2;
    if (!int.TryParse(txtGetal1.Text, out Invoergetal1) || !int.TryParse(txtGetal2.Text, out Invoergetal2)
    {
        MessageBox.Show("U dient een geheel getal in te voeren!", "Fout", MessageBoxButton.OK, MessageBoxImage.Error);
        return false;
    }
    return true;   
}

private void btnSom_Click(object sender, RoutedEventArgs e)
{
    bool correctInput = ParseAndWarn();
    if(correctInput)
    {
       int BerekenSom = int.Parse(txtGetal1.Text) + int.Parse(txtGetal2.Text);
       txtResultaat.Text += "De som van " + txtGetal1.Text + " en " + txtGetal2.Text + " = " + BerekenSom + Environment.NewLine;
    }
}

您还可以在点击事件中将其全部合并,以避免必须解析两次

private void btnSom_Click(object sender, RoutedEventArgs e)
{
    int Invoergetal1, Invoergetal2;
    if (!int.TryParse(txtGetal1.Text, out Invoergetal1) || !int.TryParse(txtGetal2.Text, out Invoergetal2)
    {
        MessageBox.Show("U dient een geheel getal in te voeren!", "Fout", MessageBoxButton.OK, MessageBoxImage.Error);
    }
    else 
    {
       int BerekenSom = Invoergetal1 + Invoergetal2;
       txtResultaat.Text += "De som van " + Invoergetal1 + " en " + Invoergetal2 + " = " + BerekenSom + Environment.NewLine;
    }
}