Ciao!
non sono sicuro di aver capito bene il problema..
se hai bisogno di verificare se l'attuale valore della textbox sia stato cambiato da un valore inserito precedentemente, puoi creare una variabile generale che contenga il valore della textbox e controllare quella all'interno della condizione.
public string MyTextBox1Value { get; set; } = string.Empty;
private void TextBox1_KewPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
if (TextBox1.Text.Length == 0)
{
TextBox2.Focus();
return;
}
if (TextBox1.Text.Length != MyTextBox1Value )
{
MyTextBox1Value = TextBox1.Text
Btn_Prova.Enabled = true;
}
TextBox2.Focus();
}
}
se questo controllo lo devi fare per tutti i textbox, puoi creare un metodo unico così da avere la logica tutta in un unico punto, qualcosa tipo il seguente:
public string MyTextBox1Value { get; set; } = string.Empty;
public string MyTextBox2Value { get; set; } = string.Empty;
public string MyTextBox3Value { get; set; } = string.Empty;
public string MyTextBox4Value { get; set; } = string.Empty;
private void ElaboraInvio(char keyChar, TextBox currentTxtBox,
Control nextControl, string currentTextBoxValue)
{
if (keyChar == (char)Keys.Enter)
{
if (currentTxtBox.Text.Length == 0)
{
nextControl.Focus();
return;
}
if (currentTxtBox.Text != currentTextBoxValue)
{
currentTextBoxValue = currentTxtBox.Text;
button2.Enabled = true;
}
nextControl.Focus();
}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
ElaboraInvio(e.KeyChar, textBox1, textBox2, MyTextBox1Value);
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
ElaboraInvio(e.KeyChar, textBox2, textBox3, MyTextBox2Value);
}
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
ElaboraInvio(e.KeyChar, textBox3, textBox4, MyTextBox3Value);
}
private void textBox4_KeyPress(object sender, KeyPressEventArgs e)
{
ElaboraInvio(e.KeyChar, textBox4, button2, MyTextBox3Value);
}
praticamente il metodo "ElaboraInvio" prende come parametro il carattere da verificare se è INVIO, la textbox corrente, il controllo successivo da mettere in focus e la variabile di testo generale da andare a controllare.
poi in ogni textbox richiami questo metodo passando i parametri che ti servono.
Maurizio