When you handle the user clicking a close button that you have created on your form, you probably handle the application close with your own user code with a "this.Close();" command. When the form is actually closed with an Alt-F4 press or by clicking on the [X] - close button/box on the top-right corner, it is handled differently. Because the CloseReason field is ReadOnly, I am not sure how you would be able to make it so.
I would suggest that in your event handlers for the OK / Cancel button presses, you notify the other form of the impending "user-close" you will perform. Then in your other form where you see if the user closed the form, you can change the if statement to be:
if(e.CloseReason == CloseReason.UserClosing
|| userClose)
{
...
}
"userClose" will just be a boolean value that you change to true if the OK / Cancel button was pressed, and before you close that form.