First, please let me clarify one thing: A button-click or some other UI-interaction causes an event and the event causes your event-handler-method to be executed. So you don't "run the events".
If you do not implement some kind of multi-threading, then the UI-thread is the only thread running in your application-process - and it can only do one thing at a time. And as you probably already have noticed, it also can't update your UI or react to user-input while being busy with executing some method that you've triggered with a previous button-click (or whatever).
If you want to be able to do multiple things simultaneously, you need to deal with multi-threading. There are various ways to do that. I would recommend you to use a (or multiple) "BackgroundWorker" (because it's an easy way for a beginner).
Let's say you click button "A" then your UI-thread would execute the event-handler-method for "button A click". There you would start a BackgroundWorker that does the actual searching (or whatever). That frees your UI-thread to resume its main purpose, to update the UI and react to user input. Then you can click on button "B" to start another BackgroundWorker that does the other search (or whatever). When a BackgroundWorker finishes, it can call back to your UI-thread (with yet another event-handler-method) in order to display the result on your form.
For examples of using a BackgroundWorker please take a look here:
http://www.dotnetperls.com/progressbar[
^]
http://stackoverflow.com/a/1068743/4320056[
^]
http://www.codeproject.com/Messages/5050414/Re-WinForms-Update-A-Dialog.aspx[
^]
Please give it a shot and if you can't get it to work, feel free to post another question here and include your code so we can see where the problem is.