То, что вы пытаетесь сделать, нелогично.Вы можете либо ShowDialog (), который поддерживает вашу программу, пока форма не будет закрыта, или , вы можете продолжать проходить программу и немедленно выйти из нее.Где вы ожидаете, что ваша программа остановится?И когда вы ожидаете, что он закроется?
Самое простое «решение» для отображения обоих на экране - это изменить порядок на:
MessageBox::Show("test", "Warning", MessageBoxButtons::OK);
X->ShowDialog();
, тогда вы получите оба на экране,В противном случае запустите MessageBox из формы (в конструкторе OnLoad, где угодно).