I have a button that when clicked, a dialog box opens up with various controls on it such as radio buttons and text boxes. If OK then the values in that dialog box is passed back to the button and the rest of the code is processed with those values. If Cancel then do nothing.
How can I do this? I was thinking of making another form with those controls and have that button call the new form but I want the rest of the controls to stop until the form is completed like a dialog box.
1.) Create the form you were talking about with all of the neccessary UI elements. Also add an OK and Cancel button to it.
2.) In the property pane for the OK and Cancel button, set the DialogResult values to OK and Cancel, respectively. Additionally, you can also set the Form's CancelButton property to be that of the Cancel button you've created.
3.) Add additional properties to the dialog that correspond to the values you'd like to return.
4.) To display the dialog, do something along the lines of
You can do this. Create a new form. From your main form you can call custom form using:
Make sure that you add relevant button to custom form and set their DialogResult property to OK, Cancel or anything else.
Somewhere in the code that disposes of the dialog you can also explicitly set the result. For example, you could put the following code in a button click event handler.
One way would be to create an event in your dialog form. Depending on how many values you want to send back then you can just have parameters in the event delegate. A better way is to create a small class or struct for arguments containing a list of properties that you want to return.
If you click OK then you fire the event with the values from the dialog. For cancel the event is not fired.
In the form with the button you hook up a handler for the event. This receives your values and you may then do with them whatever you need to.
http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx