簡體   English   中英

檢查自按下按鈕后文本框是否已更改

[英]check if textbox has changed since button press

我有一個帶有查詢的文本框,用戶可以加載和更改或不理會查詢。 我有一個測試數據庫,用戶可以使用“開發測試”按鈕將此數據庫發送到該數據庫。 結果以XML格式顯示在另一個表單文本框中。

自從按下開發按鈕以來,有沒有辦法檢查用戶是否在文本框中進行了任何更改? 我還有一個稱為生產的按鈕,如果返回給用戶的結果正確,則用戶可以將該查詢保存到生產數據庫中。

我要防止的是,用戶加載了措辭正確的查詢,對其進行了測試,結果良好,然后用戶出於偶然或故意更改了該查詢將不再起作用的某些內容,並將其提交給生產環境。 這時會出現錯誤,必須找到並更改。 我希望出現一個小消息框,並說:“自您測試以來,該文本框已更改,您確定要提交到生產環境。” 現在他們仍然可以提交它,但至少會受到警告。

假定在某個時刻按下了按鈕或發生了某些動作。

1)加載框時,可以將原始值保存在變量中2)發生操作時,可以重新查詢相同的查詢並進行另一次往返以檢索原始值3)然后比較原始值與當前

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

您可以訂閱TextChanged事件,然后更新您的字段。

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

在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");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM