Attached you find a modified version that works.
I have begun a new project from scratch and added the different functionalities to follow what happens, took quite some time.
I got a double KeyPress event too, and to avoid it I needed to add a timer to delay the display or hide of the ScrollView.
Instead of removing and creating the ScrollView I just show or hide it with the Visible property.