С помощью свойства Region можно сделать кнопку любой формы. У нас нет необходимости создавать элементы управления, мы можем испольовать уже готовые. Давайте создадим метод, который будет делать кнопку овальной формы.
Поместим на нашу форму обычную кнопку (рис. 1)

Рис. 1 Добавление кнопкиТеперь перейдем в редактор кода и создадим метод, который будет преобразовывать форму нашей кнопки в овальную:
//добавляем необходимое простанство имен:
using System.Drawing.Drawing2D;
void OvalForm(Button btn)
{
GraphicsPath gp = new GraphicsPath();
Graphics g = CreateGraphics();
//Создаем новый прямоуголник с размерами кнопки
Rectangle rect = btn.ClientRectangle;
//уменьшаем размеры прямоуголника
rect.Inflate(-3, -3);
//создаем эллипс
gp.AddEllipse(rect);
btn.Region = new Region(gp);
//рисуем рамку для овальной кнопки
g.DrawEllipse(new Pen(Color.Black, 2),
btn.Left + 1, btn.Top + 1,
btn.Width - 3, btn.Height - 3);
//высвобождаем память
g.Dispose();
}
Теперь создадим обработчик события для кнопки и поместим в него кледующий код:
private void button1_Click(object sender, EventArgs e)
{
OvalForm(button1);
}
При нажатии на кнопку её форма меняется (рис. 2)

Рис. 2 Новая форма кнопки
Похожие статьи
Чтобы кнопка была такой постоянно, нужно переопределить метод: