Code for Button Click Event

  • Thread starter Thread starter Sarah
  • Start date Start date
S

Sarah

I have code that I want to run so that if the result is true, it changes the
current button's ".DialogResult" property to "DialogResult.OK". Problem is,
when I run this code on the ".Click" event for the current button and then
run this code, if the ".DialogResult" property is change, it does not take
affect until the button is pressed again.

I do I workaround this?
 
Sarah said:
I have code that I want to run so that if the result is true, it
changes the current button's ".DialogResult" property to
"DialogResult.OK". Problem is, when I run this code on the ".Click"
event for the current button and then run this code, if the
".DialogResult" property is change, it does not take affect until the
button is pressed again.

I do I workaround this?

Why don't you execute the code on the first click?
 
Why don't you execute the code on the first click?

I am executing the code on the buttons "click" event. When the code
evaluates to true, it changes the current buttons control ".DialogResult"
property to ".DialogResult.OK". The problem is, when I change this setting
in this buttons click event, the change does not take place right away -
i.e. since the button was already pressed, changing the property of it after
it is pressed is not having the desired result -- which is to change the
".DialogResult" property was this click event. (The .DialogResult.OK
property change only works for the next time the button is pressed_).

Any help would be appreciated to find out how to run code to change the
..DialogResult property so that the change would change the behavior of the
button right away.

Thanks.
 
Sarah said:
I am executing the code on the buttons "click" event. When the
code evaluates to true, it changes the current buttons control
".DialogResult" property to ".DialogResult.OK". The problem is, when
I change this setting in this buttons click event, the change does
not take place right away - i.e. since the button was already
pressed, changing the property of it after it is pressed is not
having the desired result -- which is to change the ".DialogResult"
property was this click event. (The .DialogResult.OK property change
only works for the next time the button is pressed_).

Any help would be appreciated to find out how to run code to change
the .DialogResult property so that the change would change the
behavior of the button right away.

Whenever I change the dialogresult property it does change right away.
 
Whenever I change the dialogresult property it does change right away.
This is my scenerio:

- I launch a dialog box (form 2) from form 1 using "Dialog_AddName_Results =
CustomerName.ShowDialog()"
- On the dialog box, the "Add" button "DialogResult" property is set to
"None" by default
- On the "Add" button click event, some code evaluates to true or false
- If the above code evaluates to true, it sets "DialogResult" to OK (1)

The thing is, the dialog box does not close up right away - as when the
"Add" button was first pressed, the "DialogResult" was set to "None"

Hope that gets you to the point where I am. Is there an event that I can run
before the click event of the button that will run when the button is
clicked?
 
Why don't you just set the Form.DialogResult property in your button, then
close the form?
(Read that in the SDK.... but you may just "Hide" the form, closing it may
free the resources)
 
Dont set the DialogResult property on the button, set it on the form, then
as I said, close or hide the form.
 
Sarah said:
This is my scenerio:

- I launch a dialog box (form 2) from form 1 using
"Dialog_AddName_Results = CustomerName.ShowDialog()"
- On the dialog box, the "Add" button "DialogResult" property is set
to "None" by default
- On the "Add" button click event, some code evaluates to true or
false - If the above code evaluates to true, it sets "DialogResult"
to OK (1)

The thing is, the dialog box does not close up right away - as when
the "Add" button was first pressed, the "DialogResult" was set to
"None"

Hope that gets you to the point where I am. Is there an event that I
can run before the click event of the button that will run when the
button is clicked?

I still don't understand. Why don't you simply put

If <evaluationIsTrue> Then
Me.DialogResult = Dialogresult.Ok
Me.Close
End If

in the button's click event? Now you don't have to click twice.
 
Then, the calling form does not get the information via :

"Dialog_AddName_Results = CustomerName.ShowDialog()"
 
Sarah said:
Then, the calling form does not get the information via :

"Dialog_AddName_Results = CustomerName.ShowDialog()"


Here it does get the result.

Code in Form2, Button_Click:

Me.DialogResult = DialogResult.OK
Me.Close()

Code in Form1:
Dim result As DialogResult
Dim f As New Form2
result = f.ShowDialog
MsgBox(result.ToString)

The msgbox shows "OK"
 
Yes it does, Armin is right. The result you get from ShowDialog is the
result that's currently in the Form's DialogResult property, so, in your
button click event, do this:

Me.DialogResult = DialogResult.OK
Me.Close

The returned value will be DialogResult.OK, and the form will close.

--
HTH,
-- Tom Spink, Über Geek

Please respond to the newsgroup,
so all can benefit

"Maybe it's a game called 'Punish the User'"
 
Hello,

Sarah said:
Then, the calling form does not get the information via :

"Dialog_AddName_Results = CustomerName.ShowDialog()"

Why not? Did you try it? For me, it works as expected.
 
Back
Top