Код для отображения строки текста - PullRequest
0 голосов
/ 09 ноября 2011

Я в моем первом семестре колледжа, и мы делаем C #. Я должен сделать приложение Winforms, которое может конвертировать между градусами Цельсия и Фаренгейта. У меня есть весь код вниз (в основном), но мне нужно, чтобы результат выводился на метку. Я могу отправить ответ на этикетку с lblOutput = Output.ToString();, но мне нужно сообщение типа «[input] Цельсия будет [output] Fahrenheit». Я попытался поставить между скобками после "ToString", но я получил ошибку.

У меня есть все остальное, кроме этого. Я искал последние пару дней, чтобы понять это, но я не могу найти ответ. Любая помощь с благодарностью.

Edit:

Код, который я настроил, появляется внутри кнопки. У меня есть две радиокнопки, в которых говорится, что значение, введенное в текстовое поле, равно Far -> Cels или Cels -> Far.

Это то, что я кодировал в своей кнопке. Если есть способ улучшить это, пожалуйста, дайте мне знать.

private void btnConvert_Click(object sender, EventArgs e)
{
    decimal Input = Convert.ToDecimal(txtInput.Text); //grabs the input that the user entered

    if (rbtnCelsius.Checked == true) //Test to see if the Celsius radio button is checked
    {
        decimal Output = ((Input - 32) * 5) / 9; //If yes, it uses this formula to convert the input from Farenheit to Celsius
        txtOutput.Text = Output.ToString(); //Outputs the message to the user, showing the Celsius end point
    }
    else //Says that the Celsius Radio Button is not checked, meaning that the Farenheit radio button is
    {
        decimal Output = (Input * 9) / 5 + 32; //Moves onto this formula, converts Celsius to Farenheit
        txtOutput.Text = Output.ToString(); //outputs the message to the user, showing the Farenheit end point
    }

    //txtOutput.Text = Output.ToString();
    //Commented out because it gives an error saying that "Output does not exist in current context"
}

Ответы [ 4 ]

2 голосов
/ 09 ноября 2011
int fahrenheit, celsius;
// your code to set the two variables
string yourLabelText = String.Format("{0} Celcius is {1} Fahrenheit", celsius.ToString(), fahrenheit.ToString());

yourLabel.Text = yourLabelText;

Вот ссылка на String.Format () . (спасибо Lukazoid!)

1 голос
/ 09 ноября 2011

Я не знаю, волнует ли вас это, но в некоторых случаях вы можете получить что-то вроде 12.243333333, вызвав Output.ToString () , чтобы сделать его более удобным для пользователя, вы можете сделать это как это

Output.ToString("F2")

Что изменит его на 12.24. Вы можете использовать это вместе с строкой. Формат , как предложили люди.

1 голос
/ 09 ноября 2011

Я не уверен, о чем ваш вопрос, но если вам нужно отформатировать вывод в заданную фразу, вы можете сделать это.

private void btnConvert_Click(object sender, EventArgs e)
{
    decimal Input = Convert.ToDecimal(txtInput.Text); //grabs the input that the user entered
    // declare this outside the loop so you can use it later.
    decimal output = 0M;
    if (rbtnCelsius.Checked == true) //Test to see if the Celsius radio button is checked
    {
        output= ((Input - 32) * 5) / 9; //If yes, it uses this formula to convert the input from Farenheit to Celsius

    }
    else //Says that the Celsius Radio Button is not checked, meaning that the Farenheit radio button is
    {
        output= (Input * 9) / 5 + 32; //Moves onto this formula, converts Celsius to Farenheit

    }

    txtOutput.Text =string.Format("{0} Celsius will is {1} Fahrenheit",input,output);
}`

ps Не забудьте использовать метод try parse для обеспечениячто txtInput определенно конвертируется в десятичную.

0 голосов
/ 09 ноября 2011

вы можете использовать string.format для замены токенов, таких как {0} или {1} в строке, или вы можете напрямую использовать конкатенацию строк. Я бы не хотел прямо давать вам ответ, так как вы сказали, что это домашнее задание, но если вы посмотрите на примеры c #, вы сможете найти свой путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...