Visual Studio 2010 Express中的简易变量问题请帮忙

时间:2011-05-12 05:46:39

标签: c# .net visual-studio-2010

我正在尝试制作一个单位转换器,我所拥有的是一个按钮和两个文本框。按下按钮时我想要的按钮是将输入的内容转换为另一方(未输入的内容)

也!另一件很棒的事情是如何实现下拉菜单,所以我不需要这么多按钮和字段?谢谢< 3

TEXTBOX BUTTON TEXTBOX2(说TEXTBOX是Fahrenheit而TEXTBOX2是Celsius)我进入华氏温度并离开TEXTBOX2然后按下按钮我现在应该得到Celsius。很简单吧?

这就是我所拥有的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

namespace UnitConverter
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }



        private void button1_Click(object sender, RoutedEventArgs e)
        {

            if (boxc.Text=="")
                boxc.Text = (Convert.ToDouble(boxf.Text) * 9 /5) +32;
        }


        }
    }

对不起,对于数字和字符串,我总是被抛出一个循环:\提前感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

这一行错了:

boxc.Text = (Convert.ToDouble(boxf.Text) * 9 / 5) + 32;

你试图把双重放回文本框;你需要将结果转换回字符串:

boxc.Text = ((Convert.ToDouble(boxf.Text) * 9 / 5) + 32).ToString();

另外,你混淆了公式;我相信你试图将华氏温度(boxf中的值)转换为摄氏温度(boxc中的值),但是你使用公式将摄氏温度转换为华氏温度。

答案 1 :(得分:0)

    double c ;
try{
 c= double.Parse(boxf.Text);
}catch{
MessageBox.Show("Error!Invalid Data");
return;
}

    if (boxc.Text.Trim().length==0)
                    boxc.Text =( (c * 9 /5) +32).ToString();

答案 2 :(得分:0)

替换

boxc.Text = (Convert.ToDouble(boxf.Text) * 9 /5) +32; 

使用

boxc.Text = Convert.ToString((Convert.ToDouble(boxf.Text) * 9 /5) +32); 

答案 3 :(得分:0)

使用此: boxc.Text =((Convert.ToDouble(boxf.Text)* 9/5)+ 32).ToString();

而不是 boxc.Text =(Convert.ToDouble(boxf.Text)* 9/5)+32;