好的我正在尝试输出一个数字到textbox2(CalculatedCelsiusNumber)。单击button1后,输出编号将来自textbox1(FahrenheitNumber),并将华氏温度变为摄氏温度。我能够在控制台应用程序中编写此代码没有问题但是当我尝试使用Windows窗体时,我也无法做到。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TemperatureConversion
{
public partial class TemperatureConversionGYG : Form
{
// Varable for the calculatedCelsius
float calculatedCelsius;
// Varable for the Fahrenheit entered in textbox1.
float originalFahrenheit;
public TemperatureConversionGYG()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
// When this button is clicked it will use the number the user inputs in textbox1(FahrenheitNumber) to
// calculate the degree celsius and output it in textbox2.
calculatedCelsius = (originalFahrenheit - 32) / 9 * 5;
//Code here to send the calculatedCelsius to textbox2
}
public void textBox1_TextChanged(object sender, EventArgs e)
{
// originalFahrenheit that the program will read when user inputs a number
originalFahrenheit = Convert.ToInt32(textBox1.Text);
}
public void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void TemperatureConversionGYG_Load(object sender, EventArgs e)
{
}
}
}
答案 0 :(得分:5)
一旦你计算了价值:
calculatedCelsius = (originalFahrenheit - 32) / 9 * 5;
然后,您希望显示值。这可能是一件简单的事情:
CalculatedCelsiusNumber.Text = calculatedCelsius.ToString();
有可能,因为您点击了一个按钮来调用计算,您可能根本不想要那些TextChanged
处理程序。只需调用逻辑并在单击按钮时显示结果。
我猜想,当用户输入值时,可以通过从一个盒子到另一个盒子的计算来获得更强大的功能。在这种情况下,您希望在各自的单独函数中有两个等式(C到F和F到C),并在文本发生变化时调用相应的函数。例如,F到C函数可能是:
private float FahrenheitToCelcius(float fahrenheit)
{
return (fahrenheit - 32F) / 9F * 5F;
}
然后在TextChanged
处理程序中你可以这样做:
public void FahrenheitNumber_TextChanged(object sender, EventArgs e)
{
var fahrenheit = 0F;
if (float.TryParse(FahrenheitNumber.Text, out fahrenheit))
CelsiusNumber.Text = FahrenheitToCelcius(fahrenheit).ToString();
}
我不记得是否明确设置.Text
属性会调用TextChanged
事件。如果是的话,你可能想要使用不同的事件(例如Blur
),这样就不会创建一个无限循环,两个文本框一遍又一遍地相互设置。