0 / 0 / 1
Регистрация: 21.10.2012
Сообщений: 51
1

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

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

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

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

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

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

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

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

На сколько вы новичок? С ООП знакомы? если нет, то первое что вам нужно - понять, что такое ООП и как с ним работать, без этого можно только накопипастить.
1
0 / 0 / 1
Регистрация: 21.10.2012
Сообщений: 51
06.12.2012, 16:13  [ТС] 3
занимаюсь где то 2 недели, с ооп скорее нет, чем да... Как то абстрактно понял, сомневаюсь что смогу реализовать.
0
3457 / 2469 / 695
Регистрация: 02.08.2011
Сообщений: 6,690
06.12.2012, 22:46 4
System.Drawing.Drawing2D. Там есть класс GraphicPath, формируешь с его произовольную замкнутую линию, и в твоем элементе управления , св-ву Region - присваиваешь этот объект GraphicPath.
0
0 / 0 / 1
Регистрация: 21.10.2012
Сообщений: 51
07.12.2012, 22:41  [ТС] 5
Цитата Сообщение от 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 6
Нет, нет. SetStyle переопределять не надо. Парни имели ввиду:
C#
1
2
3
GraphicsPath path = new GraphicsPath();
path.AddEllipse(0,0,button2.Width,button2.Height);
button2.Region = new Region(path);
Этот код можно в любом месте поставить, хоть на клике кнопки, и после клика кнопка станет овальной. Просто выглядит эта штука весьма плачевно, словно ее вырезал слепой топором, может конечно возможно сгладить края, но я сомневаюсь.
0
39 / 39 / 8
Регистрация: 30.04.2012
Сообщений: 128
07.12.2012, 23:49 7
C#
1
TextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
примерно таким образом
0
3457 / 2469 / 695
Регистрация: 02.08.2011
Сообщений: 6,690
08.12.2012, 10:09 8
ну да, пользовательский дизайн выглядит криво, думаю, можно по экспериментировать.
0
08.12.2012, 10:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2012, 10:09
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru