Pues sí, seguro que hay formas mejores de hacerlo.
El problema es que has ido añadiendo parche sobre parche (vamos, que lo has hecho
"a la española" ) y al final te ha quedado como te ha quedado. Lo que te recomiendo es que hagas un poco de ingeniería (¡Por Bob! ¿He dicho eso yo?
). A lo que me refiero es que deberías replantearlo desde cero, tomar requisitos, hacer una planificación, varios esquemas en papel, implementarlo y aplicarlo. Sé que va a ser mucho trabajo, pero a la larga saldrás ganando.
Así, sin pensarlo mucho, yo haría un módulo o clase "TBusqueda" que se encargase de hacer el trabajo de buscar y guardar los resultados, y después relacionaría el objeto búsqueda con el botón correspondiente.