0

我是 Visual Studio 和 C# 的新手。我正在创建一个 WinForms 应用程序,该应用程序计算需要一个文本框(原则)、一个组合框(用于利率)、一个需要 2 个单选按钮(15 年和 30 年)和“其他”的组合框的每月抵押贷款支付按钮为用户输入的年份打开一个文本框,以及一个在单击时执行计算的按钮。有没有办法在我进行计算时仅引用组框中的一个值,或者我是否需要为每个单选按钮和文本框执行 If 语句并将其放入我的 button_Click 方法?最好,我希望 button_Click 方法简单地调用一个单独的方法来执行计算并将其放在输出字符串中。这是我到目前为止的代码:

    private void groupBox1_Enter(object sender, EventArgs e)
    {
        double yrs;
        bool success;
        if (rdo15.Checked)
            success = double.TryParse(rdo15.Text, out yrs);
        else if (rdo30.Checked)
            success = double.TryParse(rdo30.Text, out yrs);
        else
            success = double.TryParse(textBox2.Text, out yrs);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        string msgStr = string.Format("Your monthly payment will be {0}", payment());
        MessageBox.Show(msgStr);
    }

    private double payment()
    {
        double intRate = Double.Parse(comboBox1.Text);
        double prin = Double.Parse(txtPrin.Text);
        double yrs = Double.Parse(groupBox1.Text);
        //payment calculation
    }

我意识到我需要在计算后转换为货币格式等。我可以使用最后一种方法(付款)检索所有值,但组框中的值除外。我知道必须有一种简单的方法来获取其中一个值(从单选按钮或文本框)并将其插入我的数学方程式。关于如何处理它的任何提示?先感谢您。

4

3 回答 3

1

你应该继续使用你的 if/else if/else 组合,但你可以改变一些事情。

创建一个类级别的变量来存储值。

double years = [enter default value if you wish]

然后,您可以在整个课程中使用它。

在您选择的方法中,您可以按照自己的方式设置此变量(下面的效率稍高一些,因为不需要设置未使用的变量)。

if (rdo15.Checked)
   years = 15;
else if (rdo30.Checked)
   years = 30;
else
   double.TryParse(textBox2.Text, out years);
于 2013-04-25T18:35:05.980 回答
0

if 语句真的会为你提供最好的服务:

if (rad15years.checked)
    years = 15;
else if (rad30years.checked)
    years = 30;
else 
    years = int.Parse(txtCustomYears.text);
于 2013-04-25T18:29:57.550 回答
0

可能对您的需求有点过分,但我建议使用 aListBox而不是多个单选按钮。然后,您可以有一个字典DataSource,其中 key 是您的时期,以年为单位,而 value 是人类可读的时期。所以你(Key,Value)现在有两对:

{15, "15 Years"}
{30, "30 Years"}

你可以这样做ListBox1.SelectedValue,它分别返回正确数据类型的 15 和 30,应该能够直接从那里插入你的公式。这种方法还给您带来的好处是您可以轻松地扩展它,并开始支持25 years等周期。

如果出于任何原因,您想继续使用单选按钮,我建议您创建一个自定义类,它将其Years值保存在自定义属性中。因此,您将一个配置为15表单设计器,另一个配置为30. 然后它就像循环遍历所有这些一样简单,如果选中,则获取其Years属性并注入您的公式以进行进一步处理。这也可以扩展以支持任意数量的单选按钮。

于 2013-04-25T18:34:41.923 回答