2014-12-05 32 views
3

我對c#相當陌生。我已經要求以前的文字和新改文字的文字框在文字上改變了相同的事件。我試圖在textchanged事件上獲取文本,但它只是新文本。我怎樣才能得到以前的文字?如何在TextBox的TextChanged事件中獲取舊文本和更改文本框的文本?

例如假設我在文本框中有一個「abc」文本,我通過直接粘貼文本而不是通過鍵入將其更改爲「pqr」。現在在文本更改事件txtbox.text返回我「pqr」。 但我需要比較以前和新的文本,所以我需要「ABC」也。那我怎麼能得到它?

private void txtFinalTrans_TextChanged_1(object sender, EventArgs e) 
{ 
    gstrOldText = txtFinalTrans.Text;    
} 
+0

oldTextCount = newChangesCount - 1 – 2014-12-05 07:42:34

回答

2

嘗試創建一個全局變量,並在GotFocus事件把你的文本框的文本,並在TextChanged事件像用它作爲舊文本:

string OldText = string.Empty; 
private void textBox1_GotFocus(object sender, EventArgs e) 
{ 
    OldText = textBox1.Text; 
} 

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    string newText = textBox1.Text; 
    //Compare OldText and newText here 
} 

希望這有助於...

1

你需要存儲舊值。例如在同一班級的字段或屬性中。

private string LastFinalTrans { get; set; } 

private void txtFinalTrans_TextChanged_1(object sender, EventArgs e) 
{ 
    TextBox txt = (TextBox) sender; 
    if(LastFinalTrans == txt.Text) 
    { 
     // ... 
    } 
    LastFinalTrans = txt.Text; 
} 
1

聲明字符串的OldValue公共

private void textbox1_Enter(object sender, EventArgs e) 
     { 
      if (!string.IsNullOrEmpty(textbox1.Text)) 
      { 
       OldValue = textbox1.Text.Trim(); 
      } 

     } 

在離開funcation ...

private void textbox1_Leave(object sender, EventArgs e) 
     { 
      string Newvalue = textbox1.Text; 
      //Compare Both Values 

      //OldValue and Newvalue 
     } 
相關問題