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

我是一名学习 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)

    {


    }                            

}

http://img4.mukewang.com/61ac7d980001ae4f05850421.jpg

繁星点点滴滴
浏览 159回答 2
2回答

慕娘9325324

正如 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 中的整数,您就大功告成了。

ITMISS

控件的类型与创建公式几乎没有关系。要创建公式,您需要知道所有可能的输入以及如何组合它们以产生输出。这可以在一个方法中完成,例如: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();}
打开App,查看更多内容
随时随地看视频慕课网APP