>What's the best way to return a value from a modal form class?
In addition to all the other responses you have received, many people are using an object to handle that. It might interest you.
You define an object that will be used to call the form which is responsible to return a value. That object can be a line. Wherever you need to call a form to return a value, you drop that object on the form. When you want to call the form, you may call a method of the object which will do something like DO MYFORMTORETURNAVALUE WITH This. In your form, you may store the returned value in This.Value which can be the property to hold the value.
I've been using both approaches. Sometimes, I prefer to use the object method as I can benefit of object orientation and have code to be executed automatically, etc. Some other times, when I only need a simple thing, I prefer to use the conventional approach.