WinFormsのFormの仕様として、×で閉じると、DialogResultがCancelになります。Alt+F4で閉じても同様です。
FormのDialogResultの返り値を処理する場合は要注意です。
というわけで上記のようなものを作って動作確認してみました。
というわけで、標準のMessageBoxはよくできていますね。
単純に×で DialogResult.Cancelではなく、不要にCancelが漏れないように制御しています。
なので、自前でDialogBoxをこさえるには要注意です。どこかの有力なリポジトリをフォークするか、単純に×をDisableにするなど考えておく必要があるでしょう。