检查自打开表单后文本框文本是否已更改

Ste*_*son 4 c# textbox

你好
我在我的应用程序,它有7个文本框的形式.在窗体的构造函数中,我运行方法"MakeText()",将MySqlDataReader中的值插入到文本框中.

用户可以更改这些文本框中的值,当单击"提交"按钮时,它将在数据库上运行更新查询以写入所做的所有更改.
这一切都很好,但即使用户没有更改文本框中的任何文本,我发现查询数据库也浪费资源.

所以我需要一些方法来检查用户是否在加载表单后更改了文本框中的任何值.
我想在应用程序级别上执行此操作,而不是让数据库处理它.

我怎样才能做到这一点?

编辑:我只是想到了这个.也许我可以在表单加载时将所有值放入类字符串中,然后在运行查询之前检查它.有时你只需要在文字中加入一个问题来思考答案:D

无论如何,这是我能想到的最好的......

Kur*_*rru 6

您可以将初始值存储在文本框的.tag值中,然后只需在当前文本和标记文本之间进行比较


Bal*_*a R 5

你可以尝试这样的事情.

 public bool TextWasChanged = false;
 protected void form1_load()
 {
     MakeText();
     textBox1.TextChanged += new System.EventHandler(this.textBox_TextChanged);
     textBox2.TextChanged += new System.EventHandler(this.textBox_TextChanged);    
     ...
     ...
     ...

 }

    private void textBox_TextChanged(object sender, EventArgs e)
    {
        TextWasChanged = true;
    }

    void UpdateDB()
    {
        if(TextWasChanged)
        {
              // Update DB
        }
    }
Run Code Online (Sandbox Code Playgroud)