保存文本框的默认值c#

时间:2010-02-28 14:59:44

标签: c# winforms textbox

我正在创建一些计算器类型的程序。

我有一个文本框,用户可以更改其值。此文本框用于某些计算。

如何保存文本框的值,以便下次打开表单时,文本框会保存该值。

例如,文本框默认值为1.5。用户将其更改为5,然后关闭表单。下次用户打开表单时,文本框默认为5而不是1.5

任何帮助将不胜感激我在此

8 个答案:

答案 0 :(得分:7)

很可能,您没有正式的数据源,例如后端数据库。对于这种情况,请使用.NET application settings architecture在运行之间保存和恢复应用程序设置。

答案 1 :(得分:0)

您可以将数据存储在数据源中,例如:

  1. 文本文件
  2. XML文件
  3. 数据库
  4. 在Form_Load方法中,您可以检索该值并在文本框中进行设置。假设您将其写入文本文件中,代码为:

    StreamReader re = File.OpenText("MyData.txt");
    string input = null;
    input = re.ReadLine();
    txtFormData.Text = input;
    re.close;
    

答案 2 :(得分:0)

更好的方法是将文本框绑定到dataSource。根据您的要求,数据源可以是任何东西。例如,如果您更喜欢xml文件

以下是使用示例xml文件values.xml

的工作原理
<Values>
<default>1.5</default>
.
.
</Values>

以下是如何将文本框绑定到默认值

  string xml = @"<Values><default>1.5</default></Values>";

   XElement x = XElement.Parse(xml);
   var defaultValue = from d in x.Elements("default")
                      select d.Element("default").Value;

   TextBox1.Text = defaultValue;

答案 3 :(得分:0)

将最终输入写回数据源

  1. FormClosed 事件处理程序或
  2. 将强制关闭表单的异常处理程序。

答案 4 :(得分:0)

我不确定这是否是您需要的,但是当您定义TextBox(通过设计师)时,您可以将其Text属性设置为任何值。默认情况下,它是empty,但如果您愿意,可以是1.5。如果用户再次打开程序,它将是1.5而不是最后使用的程序。关闭表单并再次打开时也是如此。没有必要将值保存在其他任何地方,因为它始终是您想要使用的全局值。

您可以选择添加MainForm_Load()这样的内容:myTextBox.Text = '1.5';

这两种解决方案只有在您不想改变的常量值时才会起作用(否则您将不得不重新部署应用程序。

答案 5 :(得分:0)

public partial class Form1
{
    public string defaultValue;

    private void form2Open_Click(object sender, EventArgs e)
    {
        Form2 f = new Form2();
        if (defaultValue != null)
            f.textBox1.Text = defaultValue;
        f.mainForm = this;
        f.Show();
    }
}

public partial class Form2
{
    public Form1 mainForm;
    private void Form2_Closing(object sender, DontRememberWhatItsCalledEventArgs e)
    {
        mainForm.defaultValue = textBox1.Text;
    }
}

这是我遇到类似问题时使用的方法。 (我现在无法测试它,但你应该能够看到代码应该做什么:))

答案 6 :(得分:0)

公共部分类Form1 {     public string defaultValue;

private void form2Open_Click(object sender, EventArgs e)
{
    Form2 f = new Form2();
    if (defaultValue != null)
        f.textBox1.Text = defaultValue;
    f.mainForm = this;
    f.Show();
}

}

公共部分类Form2 {     public Form1 mainForm;     private void Form2_Closing(object sender,DontRememberWhatItsCalledEventArgs e)     {         mainForm.defaultValue = textBox1.Text;     } }

答案 7 :(得分:0)

另一种方法是使用Application.UserAppDataRegistry Property

这是一个小例子:

private void LoadSettings()
{
    textBoxOutput.Text = (String)Application.UserAppDataRegistry.GetValue("SomeName", String.Empty);
}

private void SaveSettings()
{
    Application.UserAppDataRegistry.SetValue("SomeName", textBoxOutput.Text);
}