Пример:
// создаем графический путь
GraphicsPath path = new GraphicsPath();
// добавляем строку текста к пути
path.AddString("Йа странное окно!", FontFamily.GenericSansSerif, 1, 42, new Point(0, 0), StringFormat.GenericDefault);
// и эллипс
// кстати, в точках пересечения этих путей в созданном позже регионе на форме будут "дыры"
path.AddEllipse(10, 10, 500, 500);
// создаем регион, из которого получим нашу "неправильную" форму
Region rgn = new Region(path);
// любой класс имеет свойство Region , которое определяет регион, ответственный за нашу форму
// этот регион можно присвоить и кнопке, чтобы она приобрела новую форму
// button1.Region = rgn
this.Region = rgn;

Создание окон нестандартной формы в C#
