C# 更新文本框。WinForms中单击按钮时的文本默认值

C# 更新文本框。WinForms中单击按钮时的文本默认值,c#,winforms,C#,Winforms,我有以下代码,不知道如何进一步。我只想在Form_Load()方法中更新文本框的默认文本,当我在其上写入新文本并单击“保存”按钮时 提前谢谢 private void Form7_Load(object sender, EventArgs e) { textBox1.ForeColor = System.Drawing.Color.Gray; textBox1.Text = } private vo

我有以下代码,不知道如何进一步。我只想在Form_Load()方法中更新文本框的默认文本,当我在其上写入新文本并单击“保存”按钮时

提前谢谢

private void Form7_Load(object sender, EventArgs e)
    {
        textBox1.ForeColor = System.Drawing.Color.Gray;   
        textBox1.Text =                 
    }

    private void textBox1_Click(object sender, EventArgs e)
    {
        textBox1.Clear();
        textBox1.ForeColor = textBox1.ForeColor = SystemColors.WindowText;
    }

    private void buttonSave_Click(object sender, EventArgs e)
    {
        string def = ret();
    }

    private string ret()
    {
        string text = textBox1.Text;
        return text;
    }

要在应用程序重启之间保存/还原值,最好使用.NET设置机制。转到项目的属性并单击“设置”选项卡。添加一些设置,如“TextBoxDefaultValue”,确保其类型为
String
,并标记为
User
设置

在代码中,您可以访问如下设置

textBox1.Text = Properties.Settings.Default.TextBoxDefaultValue;
要更改并保持设置,请使用以下命令:

Properties.Settings.Default.TextBoxDefaultValue := textBox1.Text;
Properties.Settings.Default.Save();
此设置现在以每个用户为基础进行持久化

因此,在您的代码中:

private void Form7_Load(object sender, EventArgs e)
{
    textBox1.ForeColor = System.Drawing.Color.Gray;   
    textBox1.Text = Properties.Settings.Default.TextBoxDefaultValue;
}

private void buttonSave_Click(object sender, EventArgs e)
{
    Properties.Settings.Default.TextBoxDefaultValue = ret();
    Properties.Settings.Default.Save();
}

顺便说一句:你应该考虑如果用户不是通过点击文本框而是通过点击进入文本框会发生什么。也许您应该查看
oneter
OnLeave
事件…

文本框.Text没有默认值,或者如果您愿意,在创建控件时它是空的。要在其中设置默认值,您需要实现它(通过设置
TextBox.Text
)并选择
Form.Load
,这是一个不错的选择

要在应用程序启动之间保持默认值,您必须以某种方式将该值保存到某个位置:文件、数据库、注册表、服务器等。请参阅问题

我自己会使用simple
XmlSerializer

public class MyData
{
    public string Text; // to save textbox text, could be public field or property
}

// to save
var data = new MyDate() { Text = textBox.Text };
using (var stream = new FileStream("somefile", FileMode.OpenOrCreate))
{
    var serializer = new XmlSerializer(data.GetType()); // or typeof(MyData)
    serializer.Serialize(fileStream, data);
}

// to load
using (var stream = new FileStream("somefile", FileMode.Open, FileAccess.Read))
{
    var serializer = new XmlSerializer(typeof(MyData));
    var data = serializer.Deserialize(stream) as MyData;
    textBox.Text = data.Text;
}

我不太明白你的问题是什么。。。只需在
表单加载
事件中设置
textBox1.Text=“some Text”
?当前发生了什么任何错误、异常、任何事情?是否要保存更改的文本,然后在下次应用程序启动时加载此值?关键是我要在文本框中写入文本,然后单击“保存”按钮,然后,文本框应将其默认值更新为书面文本,以便在每次加载或打开表单时,新编写的文本都会显示在文本框中。JohnSaps。是的,这正是我想要的。