Используете ли вы потоки?
Если ваши потоки должны вызывать родительскую форму, а не сам msgbox.
Form frm = new Form();
if (parent.InvokeRequired)
{
parent.Invoke(new ThreadStart(() =>
{
frm.ShowDialog();
}));
}
else
{
frm.ShowDialog();
}
Если вы работаете без потоков, просто удалите вызов и объяснитенемного, что делают ShowMessage и msgbox.