Here's an oldie that I never posted, maybe it's still a goodie? Pardon the inherited poor humor.
I have spent a fair amount of time on the MSDN managed newsgroups lately answering posts, and generally trying to get folks headed in the right direction, or at least away from the wrong one. Most questions are the same ones I asked early on, and I'm glad to be able to help them out like some folks did for me when I was starting out. Sometimes though, I am amazed by what developers are trying to accomplish. Stuff like rotating a ProgressBar?
What I've found is that when I hear myself saying "I can't figure out…", or I've run into a tangled quagmire of unnecessary spaghetti code, is that I need to step back and look at the business requirements and my architecture. Sometimes I find that I am trying to do something the 'wrong way' and I should re-examine how to achieve the business goals.
Like Albert Einstein said, "Make everything as simple as possible, but not simpler."
Something to keep in mind.