Приветствую всех, конечно мало кто уже использует winform однако, студенты и начинающие обычно начинают именно с него. И классическая форма кнопок печалит. Рассмотрим пример, для этого мы создадим кнопку на форме и используем код ниже:

//добавляем необходимое простанство имен: 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, 1),
btn.Left + 1, btn.Top + 1,
btn.Width - 3, btn.Height - 3);
//высвобождаем память
g.Dispose();
}
Теперь создадим обработчик события для кнопки и поместим в него следующий код:
private void button1_Click(object sender, EventArgs e)
{
OvalForm(button1);
}
Если нажать на кнопку мы увидим овальную форму, поместив в него изображение она будет выглядеть намного лучше 🙂

