检查按钮按下后文本框是否已更改

时间:2014-10-02 20:05:58

标签: c# sql winforms textbox

我有一个带有查询的文本框,用户可以加载和更改或单独留下。我有一个测试数据库,用户通过开发测试按钮发送它。结果显示在XML中的另一个表单文本框中。

有没有办法检查用户是否因为按下开发按钮而在文本框中更改了任何内容?我有另一个名为production的按钮,如果返回给用户的结果是正确的,用户可以将此查询保存到生产数据库。

我想要阻止的是用户加载正确措辞的查询,测试它,结果是好的,然后用户在事故或故意的情况下更改某些内容,此查询将不再起作用,并将其提交给生产。此时会出现错误,必须找到并更改内容。我想要一个小小的消息框出现并说:"文本框已经更改,因为您测试了它确定要将其提交给生产"。现在他们仍然可以提交,但至少他们会受到警告..

3 个答案:

答案 0 :(得分:0)

假设某个按钮被按下或某些动作发生。

1)加载框时,可以将原始值保存在变量中 2)当操作发生时,您可以重新查询同一查询并进行另一次往返以检索原始值 3)然后将原始值与当前值进行比较

  if (textBox.Text == myOriginalValue)
  {
  }
  else
  {
  }

答案 1 :(得分:0)

您可以订阅TextChanged事件,然后更新您的字段。

textbox.TextChanged += (sender, e) => { textValue = textbox.Text; };

答案 2 :(得分:0)

在Tag属性中设置脏标志并进行检查。

//Set 1 in the Tag property after loading data
private void LoadData()
{
    textBox1.Text = myValue;
    textBox1.Tag = 0;
}

//Set 0 in the Tag property on TextChange
private void textBox1_TextChange(object sender, EventArgs)
{
    ((TextBox)sender).Tag = 1;
}

//Check if Tag != 0 then do your stuff.
private void button1_click(object sender, EventArgs e)
{
    if (textBox1.Tag != null && Convert.ToInt32(textBox1.Tag) != 0)
    {
         MessageBox.Show("The text box has been changed since you tested it are you sure you want to submit this to production", "Value Has Changed");
    }
}