Your Mutex is going out of scope. That means when the second instance of your app runs, the first instance no longer has a mutex. So the second instance doesn't "see" the first. I would recommend putting this code in your Program class, rather than in a form.
static class Program
{
static void Main()
{
bool isNew = false;
using (var mutex = new Mutex(false, "MyApplicationName", out isNew))
{
if (isNew)
Run();
else
RadMessageBox.Show(this, "Application is already running.", "Error", MessageBoxButtons.OK, RadMessageIcon.Error);
}
}
static void Run()
{
// the rest of your program goes here
}
}