private void textBoxItemText_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.Enter: // Getting old and new text var oldText = labelTaskText.Text; var newText = textBoxTaskText.Text; if (oldText == newText) { BringBackTextLabel(); return; } try { // Update on DB var oldTask = _toDoTaskDao.GetOneById(_toDoTaskModel.Id); oldTask.Text = newText; _toDoTaskDao.Update(oldTask); // Update model _toDoTaskModel.Text = newText; // Display label again labelTaskText.Text = newText; _toDoListService.UpdateListCache(oldTask.ToDoList.Id, oldTask); BringBackTextLabel(); } catch (Exception ex) { labelTaskText.Text = oldText; BringBackTextLabel(); throw ex; } break; case Keys.Escape: BringBackTextLabel(); break; } }