I'm having some trouble getting the result from a window shown as a dialog.  Here's the breakdown (summary of actual code):

class WndTrigger:public Form
{
    public: static DialogResult Display(some params);
    private:
        WndTrigger();
        void Init(params from Display);
        static WndTrigger * instance;
};

This form has some buttons on it, two of which have dialogresult of cancel and OK, respectively.  When another form calls Display, the static function creates instance if it is NULL.  Then it calls Init and ShowDialog on instance and returns instance->DialogResult().  The problem is that when checking the return value of Display, it is always Cancel.  I have also tried "return instance->ShowDialog();" in the Display function with the same result.  I set a click event for the "OK" button, and the DialogResult is OK in that function.

Any suggestions?  Should I just not bother with the static instance and just create a new instance whenever I need it?  It's nice to preserve stuff like window size and position across instances, though.