Hi again ccanavan,
The most likely thing that is causing your dog to hold his eye closed would be a corneal ulcer. In a situation where a dog won't open his eye, or is holding it partially closed, he needs to see a vet promptly (today or tomorrow at the latest).
A corneal ulcer can be caused by a scratch on the eye - either in a fight with a cat, or on a twig, or on a sharp object in the home. Corneal ulcers are serious and need prompt treatment. Also, they are very painful. Just think how uncomfortable your eye is with an eyelash in it, and then imagine what it would be like with a cut on it!
When I have an animal with this problem come into the clinic, I do a full ophthalmologic exam. I might put local anesthetic in the eye to make it painfree so I could open it to examine it closely. After an initial look, I would stain the eye with fluorescein dye which sticks to any parts of the eye that are damaged. This dye glows under a black light. Thus, you can easily see where the damage is.
If there was indeed a corneal ulcer, I would start the animal on antibiotic drops or ointment. If there was a lot of inflammation (uveitis) causing the pupil to stay small, then I would also start an ointment to dilate the pupil. I would also suggest the patient wore a cone on his head until the eye is healed so he could do no further damage by rubbing (definitely he will think this is adding insult to injury!). I would have my patient come back in a week to check that things had healed up properly.
I will include a link with more information:
In short, I think your boy has a corneal ulcer. It is urgent that he see a veterinarian promptly!
If you absolutely cannot get to a vet tonight, you could get over the counter BNP ointment (ask the pharmacist for a triple antibiotic ophthalmic ointment if you can't see it. Here's a link: http://www.1800petmeds.com/B.N.P+Triple+Antibiotic+Opth-prod10291-10208.html ) and start it in his eye for tonight. Use 1/4' strip in the affected eye 4 times daily.
Good luck with him!
If this has been helpful, please hit the "Accept" button and leave feedback. If you need more information, just click on reply and I will still be here to provide it.