2014-10-02 40 views
0

我有一個用戶可以加載和更改或單獨放置查詢的文本框。我有一個測試數據庫,用戶用開發測試按鈕發送這個數據庫。結果以XML形式顯示在另一個表單文本框中。檢查文本框是否因按鈕按下而發生更改

有沒有辦法檢查用戶是否改變了文本框中的任何內容,因爲開發按鈕被按下了?我有另一個叫做production的按鈕,如果返回給用戶的結果是正確的,用戶可以將這個查詢保存到生產數據庫中。

我想要防止的是用戶加載正確措辭的查詢,測試它,結果是好的,然後用戶更改某些內容,無論是意外還是故意用於查詢不再起作用,並提交它到生產。在這一點上會出現錯誤,而且必須找到並更改。我想要一個小小的消息框出現並說:「自測試以來,文本框已經發生了變化,您確定要將其提交給生產」。現在他們仍然可以提交它,但至少他們被警告..

+1

什麼樣的文本框?的WinForms? WPF? ASP? – 2014-10-02 20:07:26

+2

當你從開發者返回結果時,你能不能保存查詢到本地變量,然後用它來進行生產?例如'button.Enabled = lastQuery == textbox.Text' – 2014-10-02 20:07:58

+0

或者將指示查詢有效的消息上傳到生產的按鈕。 – Trisped 2014-10-02 20:09:20

回答

0

設定在某個時候按下按鈕或發生某些操作。

1)當加載框,你可以在一個變量 2)當動作發生時,你可以重新查詢保存原始值相同的查詢,並進行其他往返檢索原始值 3 )然後比較當前

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

您可以訂閱TextChanged事件的原始值,然後更新您的領域。

textbox.TextChanged += (sender, e) => { textValue = textbox.Text; }; 
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"); 
    } 
} 
相關問題