我有以下代码,并且不知道如何更进一步。我只是想在Form_Load()方法中更新textBox的默认文本,当我在其上写一个新文本,然后点击" Save"按钮。
提前致谢
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;
}
答案 0 :(得分:2)
要在应用程序重新启动之间保存/恢复值,最好使用.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();
}
顺便说一句:你应该考虑一下如果用户没有通过点击它进入文本框会发生什么,而是通过标签进入它。也许您应该查看OnEnter
和OnLeave
事件......
答案 1 :(得分:0)
TextBox.Text
没有默认值,或者如果您愿意,在创建控件时它是空白的。要在其中设置默认值,您需要实现它(好吧,通过设置TextBox.Text
)并选择Form.Load
并不是一个糟糕的选择。
要在应用程序启动之间保持默认值,您必须以某种方式将此值保存到某个位置:文件,数据库,注册表,服务器等。请参阅this问题。
我自己使用简单的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;
}