Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/22: Рейтинг темы: голосов - 22, средняя оценка - 4.77
0 / 0 / 1
Регистрация: 21.10.2012
Сообщений: 51

Визуальный компонент - кнопка произвольной формы

06.12.2012, 15:27. Показов 4382. Ответов 7

Студворк — интернет-сервис помощи студентам
Мне нужно разработать визуальный компонент – овальную кнопку. Так, что бы он появился в "Панели инструментов". Как это можно реализовать, подскажите пожалуйста. Я новичок.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2012, 15:27
Ответы с готовыми решениями:

Что это за визуальный компонент?
Всем добрый день. В Visual Studio 2015 в настройках я нашел такой компонент. Подскажите что это за компонент? И где я могу его найти?

Визуальный компонент для текста
Добрый день! Мне нужно получить вот такое окно Какой компонент можно (нужно) использовать для текста? Пробовал RichTextBox, но...

Eсли ли визуальный компонент excel
хочу почеркнуть не просто позволяющий прочитать данные а ПОСМОТРЕТЬ как на книгу -как в builder f1workbook например

7
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
06.12.2012, 15:42
Создать класс, наследовать класс от Contol, установить в конструкторе стили компонента которые необходимы (метод SetStyle), переопределить методы такие как OnPaint (для прорисовки самой кнопки), OnMouseDown и пр для реагирования на воздействия пользователя, при необходимости создать события какие то, в св-вах влияющих на внешний вид кнопки (к примеру создадите св-во цвета границы кнопки) вызывать прорисовку компонента. Что то типа этого. Если разрабатывать компонент прямо в приложении где он будет использоваться, в ToolBox он пояится автоматически после компиляции, если создаете кнопку которую можно будет использовать в др приложениях, тогда следует создать отдельный проект ClassLibrary, потом подключать полученную dll через Tools - Shoose Toolbox Items...

На сколько вы новичок? С ООП знакомы? если нет, то первое что вам нужно - понять, что такое ООП и как с ним работать, без этого можно только накопипастить.
1
0 / 0 / 1
Регистрация: 21.10.2012
Сообщений: 51
06.12.2012, 16:13  [ТС]
занимаюсь где то 2 недели, с ооп скорее нет, чем да... Как то абстрактно понял, сомневаюсь что смогу реализовать.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
06.12.2012, 22:46
System.Drawing.Drawing2D. Там есть класс GraphicPath, формируешь с его произовольную замкнутую линию, и в твоем элементе управления , св-ву Region - присваиваешь этот объект GraphicPath.
0
0 / 0 / 1
Регистрация: 21.10.2012
Сообщений: 51
07.12.2012, 22:41  [ТС]
Цитата Сообщение от IamRain Посмотреть сообщение
System.Drawing.Drawing2D. Там есть класс GraphicPath, формируешь с его произовольную замкнутую линию, и в твоем элементе управления , св-ву Region - присваиваешь этот объект GraphicPath.
Я вот не врубаю, что там нужно прописать "<----", что бы переопределить стиль. Подскажи пожалуйста. Я вообще нуб.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace WindowsFormsApplication1
{
    /*Класс наследованный от Button*/
    public class OvalButton : System.Windows.Forms.Button
    {
        protected override void SetStyle() <--- 
        {
            System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
            path.AddEllipse(10, 10, 30, 30);
            System.Drawing.Region region = new Region(path);
            btnPrint.Bounds = new Rectangle(0, 0, 50, 50);
            btnPrint.Region = region;
        }
    }
}
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
07.12.2012, 23:24
Нет, нет. SetStyle переопределять не надо. Парни имели ввиду:
C#
1
2
3
GraphicsPath path = new GraphicsPath();
path.AddEllipse(0,0,button2.Width,button2.Height);
button2.Region = new Region(path);
Этот код можно в любом месте поставить, хоть на клике кнопки, и после клика кнопка станет овальной. Просто выглядит эта штука весьма плачевно, словно ее вырезал слепой топором, может конечно возможно сгладить края, но я сомневаюсь.
0
 Аватар для phoenfix
39 / 39 / 8
Регистрация: 30.04.2012
Сообщений: 128
07.12.2012, 23:49
C#
1
TextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
примерно таким образом
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
08.12.2012, 10:09
ну да, пользовательский дизайн выглядит криво, думаю, можно по экспериментировать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.12.2012, 10:09
Помогаю со студенческими работами здесь

Визуальный компонент произвольной формы
Есть ли в Лазарус какой-нибудь компонент для отображения не прямоугольного объекта? Нужно для отображения линий (связей между блоками на...

Кнопка произвольной формы
Добрый вечер! Мне нужно сделать кнопки, которые будут являться округами России. Image не подходит, программа Регионы 7 неудобная. Кто может...

Кнопка произвольной формы
QBitmap bitmap; bitmap.load(&quot;С:/icon.png&quot;); QPushButton *black1 = new QPushButton; black1-&gt;setMask(bitmap); Так не...

Кнопка произвольной формы
Как у стандартной кнопки(TButton) изменить форму?

Кнопка произвольной формы под углом
Как создать кнопку в форме трапеции + под определенным углом? Так же интересует вопрос, как сделать кнопку круглой. Везде встречаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru