我正在尝试制作一个单位转换器,我所拥有的是一个按钮和两个文本框。按下按钮时我想要的按钮是将输入的内容转换为另一方(未输入的内容)
也!另一件很棒的事情是如何实现下拉菜单,所以我不需要这么多按钮和字段?谢谢< 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;
}
}
}
对不起,对于数字和字符串,我总是被抛出一个循环:\提前感谢您的帮助。
答案 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;