Success!! You're going to think I'm insane when I describe the solution to you, but this is really what happened.
I was trying to produce a simplified project to demonstrate. But when I had created skeletons of the dependent classes it started to work again. In the process of my editing, I had stupidly put these skeleton classes at the top of the Form's .cs file. When I tried to open it in the designer, it gave me an error message saying that the Form class had to be the first class, so I moved the skeletons to the bottom. Then it worked.
So I did the same thing in my real project. I created a new class above the Form's class:
public class Dummy{ public int myint; }
Then I saved it, opened the designer, and got the error. Then I deleted the Dummy class, opened the designer, and everything was OK again.
This really sounds like a Visual Studio bug, doesn't it?