解析浮动到文本框

时间:2011-06-27 04:13:36

标签: c# parsing textbox

此刻回避我的简单问题。我需要下面两行来解析才能浮动。我得到这两行:错误1无法将类型'test.Form1.ore'隐式转换为'string'。所以我想解析文本框浮动,因为这将传递给文本框,任何人都可以告诉我我错过了什么。

textBox3.Text = books[0]; // update the first text
textBox4.Text = books[1]; // update the second text

我试过这个

textBox4.Text = float.Parse(books[1]);  //update the second text

但它无效

添加所有参考代码

 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;
 using System.IO;
 using System.Runtime.Serialization.Formatters.Binary;

 namespace test
{

public partial class Form1 : Form
{
    [Serializable]
    public class ore
    {
        public float Titan;
        public float Eperton;
    }
    ore b1 = null;
    ore b2 = null;



    public Form1()
    {
        InitializeComponent();

        b2 = new ore();
        b1 = new ore();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

        float tempFloat;


        if (float.TryParse(textBox1.Text, out tempFloat))
        {
            b1.Titan = tempFloat;
        }
        else
            MessageBox.Show("uh oh");



    }


    private void textBox2_TextChanged(object sender, EventArgs e)
    {
        float tempFloat;
        if (float.TryParse(textBox1.Text, out tempFloat))
        {
            b2.Eperton = tempFloat;
        }
        else
            MessageBox.Show("uh oh");


    }


    private void button1_Click(object sender, EventArgs e)
    {
        List<ore> oreData = new List<ore>();
        oreData.Add(b1);
        oreData.Add(b2);

        FileStream fs = new FileStream("ore.dat", FileMode.Create);
        BinaryFormatter bf = new BinaryFormatter();
        bf.Serialize(fs, oreData);
        fs.Close();
    }

    private void textBox3_TextChanged(object sender, EventArgs e)
    {

    }

    private void textBox4_TextChanged(object sender, EventArgs e)
    {

    }

    List<ore> books = new List<ore>();
    private void button2_Click(object sender, EventArgs e)
    {
        FileStream fs = new FileStream("ore.dat", FileMode.Open);
        BinaryFormatter bf = new BinaryFormatter();
        List<ore> books = (List<ore>)bf.Deserialize(fs);
        fs.Close();

        if (books.Count > 1)
        {
            textBox3.Text = float.Parse(books[0]).ToString();//update the first text
            textBox4.Text = float.Parse(books[1]).ToString();
            //update the second text
        }
    }
}

}

3 个答案:

答案 0 :(得分:1)

“Parse”表示将字符串(文本)处理为特定的值类型,例如float或integer。这你需要什么。实际上,您需要执行相反的操作:获取其他值的字符串表示。

要为文本框指定非字符串值,只需调用ToString()方法。

double dbl = 0;
MyTextBox.Text = dbl.ToString();

答案 1 :(得分:0)

textBox4.Text要求您为其指定一个字符串。你给它分配一个浮点数。如果您需要将作为字符串显示为,请使用ToString方法。

textBox4.Text = float.Parse(books[1]).ToString();

答案 2 :(得分:0)

如果您想将文本框的内容转换为数字,那么您已向后编写代码。

您现在尝试将float.Parse方法的返回值分配给文本框的Text属性。当然,这不起作用,因为函数返回floatText属性需要string

相反,要解析books[1]中包含的字符串值,您应该写下:

float myValue = float.Parse(books[1]));

要将float转换为可以在文本框中显示的字符串,您应该写一下:

textBox4.Text = books[1].ToString();