Return value from Form


New Member
Licensed User
I created a form [say: Selection-form] which will be used several times to select something. How do I stop my program - wait until the Selection-form is completed - and use the result?

Something like:

result = SelectionForm.GetSomething
' wait until something is selected
txtResult.text = result

Anybody know?
Thanks - Ghislain


Active Member
Licensed User
Longtime User
The way I would do it is to just use the when you want to to get the information and include an "Ok" and a "Cancel" button on the form:

Sub btnOk_click
end sub

Sub btnCancel_click
end sub

But I am sure there are more elegant solutions around :)

all the best / Björn


Well-Known Member
Licensed User
Longtime User

There are many ways to acheive what you want.
BjornF has suggested a good event based way of doing this.
You could also use a Do Until/Do While command or If Then to loop back through the code until your value has changed.

Have you checked out Erel's Input Panel which can be found here
You might be able to adapt this to fit your needs.



New Member
Licensed User
Hello again!

Your solutions seems logical and i have tried it.
But - as soon as you call the program continues and the return value from btnClick_OK will never be captured..

Thanks. I hope i will find a solution which works with forms in the future. But the panel will do the trick for the time being..
Thinking about it - it won't work. The input-panel example doesn't return a value either..

I guess a while-wend loop is the only option. It seems quite processor intense to me. I hope there is a better solution. It should be possible - eg: calendar-control & open-dialog.



New Member
What we need is to add modal/modeless to the Show method of the form, so:

Form2.Show 0 will work as ususal (Form2 shows but the code continues after to executre after Form2.Show)


Form2.Show 1 will show Form2 and waits until Form2 is closed (btw: how about a "REAL" close?)