为了账号安全,请及时绑定邮箱和手机立即绑定

如何为公式计算的复选框分配值,其中包括公式中的文本框

如何为公式计算的复选框分配值,其中包括公式中的文本框

C#
繁星点点滴滴 2021-12-05 16:51:14
我是一名学习 C# 编码的新程序员,我有一个 C# 作业要完成,为此我需要制定一些公式来计算旅游租金,为此我决定在 C# 中使用文本框和复选框,但我不能弄清楚如何使用复选框和文本框的组合来制作公式。private void button1_Click_1(object sender, EventArgs e){    checkBox1.Text = "50000";    checkBox2.Text = "250000";    checkBox3.Text = "2500";    checkBox4.Text = "10000";    checkBox5.Text = "1500";     if (checkBox1.CheckState == CheckState.Checked &&         checkBox2.CheckState == CheckState.Checked)    {    }                            }
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

正如 Rufus 所说,我会使用 RadioButtons,而不是 CheckBoxes。将 RadioButtons 的 Tag 属性设置为您想要与它们关联的值,然后使用这样的函数来获取选中项的值。只需将 GroupBox 传递给函数并取回选中的 RadioButton 的值。


 private int GetGroupBoxValue(GroupBox gb)

    {

        int nReturn = 0;

        foreach (Control ctl in gb.Controls)

        {

            if (ctl.GetType() == typeof(RadioButton))

            {

                if (((RadioButton)ctl).Checked)

                {

                    nReturn = Convert.ToInt32(ctl.Tag);

                    break;

                }

            }

        }

        return nReturn;

    }

现在您所要做的就是使用 Rufus 提供的优秀代码来检查rentDuration TextBox 中的整数,您就大功告成了。


查看完整回答
反对 回复 2021-12-05
?
ITMISS

TA贡献1871条经验 获得超8个赞

控件的类型与创建公式几乎没有关系。要创建公式,您需要知道所有可能的输入以及如何组合它们以产生输出。这可以在一个方法中完成,例如:


private int GetTotalValue(int vehiclePrice, int driverPrice, int rentDuration)

{

    // This is where your formula would go

    return (vehiclePrice + driverPrice) * rentDuration;

}

诀窍是将表单控件的状态转换为可以插入到方法中的值。执行此操作的一种方法(不一定是最好的方法,但在您开始时可能最容易理解)是检查每个控件的值并在Click事件中为您的Submit按钮设置适当的值。


对于租期,我们可以使用该int.TryParse方法,该方法接受一个字符串和一个“out”int 参数,如果字符串是有效整数则返回真,否则返回假。当它退出时,如果转换成功,out 参数将包含 int 值。


对于其他控件,我们可以使用简单的if / else if语句来确定检查了哪个控件,然后相应地设置我们的值。在这个例子中,我们在 click 事件中使用临时变量来将每个参数的值存储到方法中。如果没有选中任何必需的控件,我们可以向用户显示一条消息并等待他们完成填写表单。


在这个例子中,我使用了单选按钮(并使用了opt前缀,这是很久以前的命名约定,我不确定是否仍然存在——它们曾经被称为选项按钮):


private void btnSubmit_Click(object sender, EventArgs e)

{

    // Validate that rent textbox contains a number

    int rentDuration;

    if (!int.TryParse(txtRentDuration.Text, out rentDuration))

    {

        MessageBox.Show("Please enter a valid number for rent duration");

        return;

    }


    // Determine vehicle price based on which option was selected

    int vehiclePrice;

    if (optToyotaPrado.Checked) vehiclePrice = 50000;

    else if (optRollsRoyce.Checked) vehiclePrice = 250000;

    else if (optSuzikiWagonR.Checked) vehiclePrice = 2500;

    else if (optToyotaCorolla.Checked) vehiclePrice = 10000;

    else

    {

        MessageBox.Show("Please select a vehicle");

        return;

    }


    // Determine driver price

    int driverPrice;

    if (optWithDriver.Checked) driverPrice = 1500;

    else if (optWithoutDriver.Checked) driverPrice = 0;

    else

    {

        MessageBox.Show("Please select a driver option");

        return;

    }


    // Finally set the text to the return value of our original method,

    // passing in the appropriate values based on the user's selections

    txtTotalValue.Text = GetTotalValue(vehiclePrice, driverPrice, rentDuration).ToString();

}


查看完整回答
反对 回复 2021-12-05
  • 2 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信