簡體   English   中英

C#溫度轉換表

[英]C# Temperature Conversion Form

我有此表格要參加我所在的學校課程。我在運行程序時遇到問題。 要求如下:

  • 當用戶單擊按鈕進行轉換時,第一步是驗證用戶在文本框中的輸入。 任何實數都是可以接受的。 如果在文本框中輸入的用戶不是實數,請在結果輸出標簽中顯示適當的消息,如下所示。 “錯誤:請輸入要轉換的數字溫度。”

  • 如果用戶輸入的是實數,則將其存儲,然后根據所選的“轉換為”單選按鈕計算轉換后的溫度值。 然后在輸出標簽中顯示結果。 請遵循此示例以獲取適當的格式:“ 72.4華氏度轉換為22.44攝氏度。”

  • 當用戶單擊清除按鈕時,應將表單重置為其默認狀態,以准備輸入。 提示:除了清除輸入文本框和結果輸出標簽外,可能還有其他事情要做。

  • 當用戶單擊按鈕退出時,該窗體應關閉,從而結束程序

這是我的代碼:

namespace TemperatureConversionForm
{
    public partial class frmTemperatureConverter : Form
    {
        public frmTemperatureConverter()
        {
            InitializeComponent();
        }

        private void btnConvert_Click(object sender, EventArgs e)
        {
            double tempurature;
            double celsius;
            double fahrenheit;

            if (!double.TryParse(txtInput.Text, out tempurature) == false )
            {
                MessageBox.Show("ERROR: Please enter a numeric temperature to convert");
                txtInput.ResetText();
                txtInput.Focus();
            }

            if (rdoCelsius.Checked == true)
            {
                celsius = double.Parse(txtInput.Text);
                celsius = (5.0 / 9.0 * (txtInput - 32));
                lblConversion.Text = celsius.ToString();
            }
            else if (rdoFahrenheit.Checked == true)
            {
                fahrenheit = double.Parse(txtInput.Text);
                fahrenheit = (txtInput * 9.0 / 5.0 + 32);
                lblConversion.Text = fahrenheit.ToString();
            }
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            txtInput.ResetText();
            lblConversion.ResetText();

            txtInput.Focus();
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

我收到2個錯誤:

代碼說明

CS0019運算符“-”不能應用於類型為“ TextBox”和“ Int”的操作數

CS0019運算符'*'不能應用於'TextBox'和'double'類型的操作數

就像編譯器告訴您的那樣,您正在嘗試對TextBox對象執行數學運算:

txtInput - 32

您可能打算對從TextBox解析的執行數學運算:

celsius = (5.0 / 9.0 * (celsius - 32));

和:

fahrenheit = (fahrenheit * 9.0 / 5.0 + 32);

基本上, TextBox是對象,而不是值。 它具有屬性和功能以及對象具有的各種功能。 盡管您可能會在概念上傾向於將其視為代表其所擁有的價值,但該語言需要您更加具體。 您可以從此處的TextBox獲取值:

celsius = double.Parse(txtInput.Text);

然后,您需要對該值本身執行計算,而不是對它所來自的TextBox對象執行計算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM