2014-01-14 5 views
1

Я хочу, чтобы моя кнопка, форма, текстовое поле и групповой ящик немного округлились от краев. Я пробовал это,Как сделать круглый край кнопки, текстового поля, формы и группового поля в C#?

GraphicsPath mygp = new GraphicsPath(); 
Graphics mygr = this.CreateGraphics(); 
Pen myp = new Pen(Color.Black, 1); 

mygp.AddArc(400, 10, 30, 30, 180, 90); 

mygp.AddArc(600, 10, 30, 30, 270, 90); 
mygp.AddArc(600, 200, 30, 30, 0, 90); 
mygp.AddArc(400, 200, 30, 30, 90, 90); 
mygr.FillPath(Brushes.Black, mygp); 
mygr.DrawPath(myp, mygp); 

он делает блок с круглыми краями. Но я хочу, чтобы моя кнопка и т. Д. Имели закругленный край.

Пожалуйста, помогите мне.

+0

http://stackoverflow.com/questions/5718619/c-sharp-how-to-add-round-corner-to-button – Yanshof

+0

WinForms создает дескриптор окна для каждого элемента управления, а также оконные ручки являются прямоугольными. Возможно закругленные углы, но сделать их нелегко. Если вы хотите нечетные кнопки (и хотите, чтобы они выглядели хорошо), вам гораздо лучше использовать WPF вместо WinForms. Если вам действительно нужна WinForms по какой-то причине, посмотрите на сторонние библиотеки; некоторые из них являются скинами и могут позволить такую ​​настройку. –

+0

У вас проблемы на ранней стадии. Это не так просто, как просто создание графического пути ... вам нужно будет перерисовать весь элемент управления. Я бы посоветовал либо инвестировать в HELL много времени в GDI/GDI + (который становится устаревшим), либо ... перейдите в WPF, который сделает вашу жизнь намного проще! – series0ne

ответ

0

Я думаю, что наиболее подходящий способ - написать свой код в событии OnPaint, который позволит вам нарисовать кнопку самостоятельно. В следующей ссылке вы найдете хорошее решение, использующее такой же подход.

http://www.codeproject.com/Articles/15730/RoundButton-Windows-Control-Ever-Decreasing-Circle