文本字段值已更新并保存,但当再次加载表单并单击按钮时,字段会重置为默认值

Posted

技术标签:

【中文标题】文本字段值已更新并保存,但当再次加载表单并单击按钮时,字段会重置为默认值【英文标题】:Textfield value updated and saved but field resets back to default value when form loaded again and button clicked 【发布时间】:2014-04-20 14:31:03 【问题描述】:

我的程序: 文本字段将显示一个默认值,当单击按钮时,值减 1。我可以保存表单并在以后重新加载,文本字段值将显示最后保存的值。当我单击按钮再次递减时,值应该从保存的值而不是默认值递减 1。

我的问题: 当我在递减值后保存程序并稍后重新加载表单时,当我单击要递减的按钮时,文本字段值会恢复为默认值。在初始表单加载时,会显示正确的值,当我单击该值重置为默认值的按钮时。

以下是我的计划的核心领域:

class Play

    public int Total = 5110;


private void Form1_Load(object sender, EventArgs e)

    fText.Text = Properties.Settings.Default.TextBox1;


private void btnButton1_Click(object sender, EventArgs e)

    myPlay.Total--;
    ftext.Text = myPlay.Total.ToString();


private void btnSave_Click(object sender, EventArgs e)

    Properties.Settings.Default.TextBox1 = fText.Text;
    Properties.Settings.Default.Save();
    lblSaveNote.Text = "Saved " + DateTime.Now; 

【问题讨论】:

为什么是 Properties.settings.default.textBox1??我认为这会导致问题。您可以尝试删除该行吗? 当我点击保存按钮时存储当前值。我认为问题在于 ftext.Text = myPlay.Total.ToString(),它位于 btnButton1_Click 内部。虽然想不通:( 我建议你在Form1_Load方法中放一个messegeBox。如果messegebox 没有出现,那就是load 方法的问题。也许你需要使用 Form1_Shown 方法。 【参考方案1】:

我已经设法通过将 btnButton1_Click 代码替换为:

        Properties.Settings.Default.TextBox1--;
        fText.Text = Properties.Settings.Default.TextBox1.ToString();

【讨论】:

以上是关于文本字段值已更新并保存,但当再次加载表单并单击按钮时,字段会重置为默认值的主要内容,如果未能解决你的问题,请参考以下文章

从核心数据中获取数据

单击按钮时附加新文本字段并通过单击 Laravel 4 中的按钮删除

禁用文本框丢失视图状态

如果页面重新加载,如何在表单上保留对单选按钮的选择

QLineEdit 单击时清除文本并从按钮读取文本[关闭]

单击并在数据库中更新时在 Django 中编辑表单字段