It is really slow because you pass all the processing via the server side. Imagine how much time would it take to postback HTTP request on every small and fast clicks, even in best-case scenario, how much of useless traffic it takes.
In this context, such things as calling
FindControl("Panel1")
again and again looks like a small (but dirty) flaw :-).
By the way, this is unrelated to the performance, but awful for the maintainability of your code: names like "Panel1". Never ever use auto-generated names; they are not intended to be used as is and fail to meed (good) Microsoft naming conventions, by apparent reasons. After all, what to you think you are giving the refactoring engine for? Give everything semantically sensible names.
Now, what to do? Do all UI navigation detail, hiding and showing, toggling, sliding, and everything like that which happens on the same page exclusively using JavaScript. This is not so hard as it may seem. You can prototype all such effects on a purely local HTML+CSS+JavaScript applications and even debug all the code, either via Visual Studio or other debuggers.
For example, visibility manipulations are described in my past answer:
How to show and hide div[
^].
—SA