Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/22: Рейтинг темы: голосов - 22, средняя оценка - 4.91
 Аватар для Devel
91 / 46 / 2
Регистрация: 02.11.2010
Сообщений: 261

Как создать свой control наследованием от label?

15.07.2011, 17:42. Показов 4636. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Желательно поподробнее. Заранее спасибо
Visual Basic 2010
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2011, 17:42
Ответы с готовыми решениями:

Как создать свой Control на основе .dll файла?
Класс RichTextBox использует riched20.dll, а я хочу создать свой RichTextBox на основе msftedit.dll Кто-нибудь знает, как создать такой...

Свой слайдер (View control)
Здравствуйте, делаю пульт для управления автомобилем. хочу управлять зажигание авто из телефона. Потянуть слайдер вправо и машина завелась....

Свой User Control и Index
Всем привет! Сделал свой user control, но столкнулся с проблемой. Код ниже должен выгружать весь массив контролов, кроме нулевого,...

10
197 / 189 / 15
Регистрация: 09.02.2011
Сообщений: 457
15.07.2011, 19:05
Чтобы было подробнее расскажите что хочется изменить в стандартном контроле.
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
15.07.2011, 19:07
В общем случае
VB.NET
1
2
Class SomeName
     Inherits Label
3
197 / 189 / 15
Регистрация: 09.02.2011
Сообщений: 457
15.07.2011, 19:25
Лучший ответ Сообщение было отмечено как решение

Решение

Ну да, именно так... А дальше все зависит от задач... Например так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Class Form4
    Public Class MyNewLabel
        Inherits Label
 
        Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
            MyBase.OnPaint(e)
            Dim rand As New Random()
            Me.BackColor = Color.FromArgb(rand.Next(255), rand.Next(255), rand.Next(255))
        End Sub
    End Class
    Dim newlbl As MyNewLabel
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Not newlbl Is Nothing Then newlbl.Dispose()
        newlbl = New MyNewLabel
        newlbl.Top = 20
        newlbl.Left = 20
        Me.Controls.Add(newlbl)
    End Sub
End Class
6
 Аватар для Devel
91 / 46 / 2
Регистрация: 02.11.2010
Сообщений: 261
16.07.2011, 14:05  [ТС]
Bazzy, мне надо создать label, поддерживающий прозрачность. При этом он должен находится на картинке. Т.е за текстом должен быть не серый фон transparent, а картинка.
На MSDN мне подсказали вот эту статью. Поэтому мне надо создать или отредактировать (что будет лучше) label
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
16.07.2011, 16:14
InstallGame, Тогда зачем изобретать?
Серый фон - он и будет по умолчанию, потому как родитель лебла - форма.
Сделай родителем Пикчербокс:
VB.NET
1
Лейбл.Parent = ПикчерБокс
2
 Аватар для Devel
91 / 46 / 2
Регистрация: 02.11.2010
Сообщений: 261
16.07.2011, 18:58  [ТС]
Памирыч, не помогло Вот какой у меня код:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Public Class FormAbout
 
    Private Sub FormAbout_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Загружаю картинки из файлов
        Me.PictureBox_FormAbout_layer.Load("Images\desktop\secm\about\layer.jpg")
        Me.PictureBox_FormAbout_exit_d.Load("Images\desktop\secm\about\btn\exit_d.png")
        Me.PictureBox_FormAbout_exit_a.Load("Images\desktop\secm\about\btn\exit_a.png")
        'Задаю родительский объект для Label1
        Me.Label1.Parent = PictureBox_FormAbout_layer 'Без "Me." тоже самое
    End Sub
 
    'Задаю смену картинок при наведении мыши
    Private Sub PictureBox_FormAbout_exit_d_MouseMove() Handles PictureBox_FormAbout_exit_d.MouseMove
        Me.PictureBox_FormAbout_exit_a.Visible = True
        Me.PictureBox_FormAbout_exit_d.Visible = False
    End Sub
 
    Private Sub PictureBox_FormAbout_exit_a_MouseLeave() Handles PictureBox_FormAbout_exit_a.MouseLeave
        Me.PictureBox_FormAbout_exit_d.Visible = True
        Me.PictureBox_FormAbout_exit_a.Visible = False
    End Sub
 
    'Задаю действие при клике
    Private Sub PictureBox_FormAbout_exit_a_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox_FormAbout_exit_a.Click
        Me.Close()
    End Sub
End Class
Результат (Эта проблема относится и к прозрачной части exit_a.png & exit_d.png):
Миниатюры
Как создать свой control наследованием от label?  
0
 Аватар для Devel
91 / 46 / 2
Регистрация: 02.11.2010
Сообщений: 261
16.07.2011, 19:12  [ТС]
Все! Я разобрался! Спасибо!
0
 Аватар для Devel
91 / 46 / 2
Регистрация: 02.11.2010
Сообщений: 261
16.07.2011, 20:41  [ТС]
Вот выкладываю схему, как сделать какой либо элемент прозрачным:

1. Создаем проект и перетаскиваем на форму 3 элемента (Label; PictureBox x2)

2. Разворачиваем PictPictureBox1 под размер любого большого (~500x500) изображения, которое есть на компьютере; Находим маленькое (~50x50) изображение с прозрачностью (расширение *.png)

3. Редактируем свойства элементов:
Label:
Text = CyberForum
BackColor = Transparent
PictureBox1:
BackColor = Transparent
Image = (Выбираем большое изображение)
PictureBox2:
BackColor = Transparent
Image = (Выбираем маленькое изображение)

4. Ставим PictureBox1 на задний план

5. Редактируем код Form1
VB.NET
1
2
3
4
5
6
7
8
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Label1.Parent = PictureBox1
        Me.PictureBox2Parent = PictureBox1
    End Sub
 
End Class
6. Компилируем и радуемся истиной прозрачности


P.S. Не забываем делать "BackColor = Transparent"
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
16.07.2011, 20:50
InstallGame,
 Комментарий модератора 
Запрещено накручивать репутацию любым способом, включая создание пользователей-клонов, а также склонять (агитировать) других пользователей к ее повышению.
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
28.02.2016, 21:34
Devel, как сделать чтобы элемент Label всегда занимал всю графическую область контрола
как при разработке, так и при использовании созданного контрола. Eсли можно, кусок кода который нужно вставить в листинг контрола.
Как скрыть ненужные (неиспользуемые) свойства контрола на этапе его применения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.02.2016, 21:34
Помогаю со студенческими работами здесь

Создать класс с наследованием с++
Добрый день, по условию : Для определения иерархии классов связать отношением наследования классы, приведенные ниже. Из перечисленных...

Как создать Applet Control Panel?
Здравствуйте. Помогите советом и примером. Как создать средствами VB 6.0 сию вещицу для своего приложения?

Создать 2 класса с наследованием полей и методов
Экзамен по C#. Создать 2 класса с наследованием следующей структуры. 1: поля а и b, конструктор для их ввода; 2: методы fact,fib, вывести...

Как в WPF создать Custom Control унаследованный от Listview
Всем привет! Долго мучаюсь, просканировал инет, но так и не нашел решения - как сделать Custum Control унаследованный от Listview. Создание...

Как создать красивый контакт лист User control
Доброе время суток форумчане. Говорю сразу программирую недавно на VB .NET читал, искал по форуму,гуглил решение моей проблемы...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru