Here's something that worked for me, but cost nothing. Put your potting mix into a large container with drainage holes. Boil water, then pour the hot water over the potting mix, Drench it good and let the water drain out of the bottom. Best to do this outside. Let the soil cool overnight before using. It kills any fungus gnat eggs that are hiding in the soil. I've done this every year and I no longer have problems with gnats. It works very good, and I don't have to spend any money on Gnat killer.