Изменение внешнего вида объектов

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

vld
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 28.12.2004 (Вт) 15:51

Изменение внешнего вида объектов

Сообщение vld » 20.02.2008 (Ср) 18:22

Господа!
Покажите, как добиться следущего (на прилагаемом "Примере"):

1. Как на ярлык вкладки наряду с текстом поместить какой-нить рисунок (например "отрытая папка")?
2. При изменении состояния ChekBox1 изменить цвет текста "Ярлык вкладки" например на зеленый?
3. При изменении состояния ChekBox1 изменить цвет ярлыка вкладки например на красный?
4. При изменении состояния ChekBox1 изменить рисунок на ярлыке вкладки например на "закрытая папка"?

По возможности дописать программный код программы - так будет наиболее ясно и понятно.

Спасиб
Код: Выделить всё
Вложения
Пример.rar
(21.12 Кб) Скачиваний: 97

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 21.02.2008 (Чт) 10:11

vld
Все это настолько легко, что сразу понятно, что Вы не читали книг, даже не открывали их...иначе занли бы про такие свойства как:
ImageIndex
ImageKey
Image
CheckState
понятия Вы не имеет про такие собятия как CheckStateChanged

теперь у Вас есть ключевые слова, и вы можете поискать...

vld
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 28.12.2004 (Вт) 15:51

Сообщение vld » 21.02.2008 (Чт) 18:24

не согласен.
как доказательство - прикрепленный пример.
а вот все перечисленные свойства напрямую не позволяют добиться желаемого результата.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 21.02.2008 (Чт) 18:54

vld писал(а):не согласен.
как доказательство - прикрепленный пример.

с чем? с моим подозрением на то, что Вы книг не читали? так пример можно скачать где-то, у друга на винте найти ...
vld писал(а):а вот все перечисленные свойства напрямую не позволяют добиться желаемого результата.


На полученом примере, обьясняю, но с условием, что Вы читаете книгу, идет? если до, то поехали
1
I. Добавляем на форму ImageList1 (System.Windows.Forms.ImageList)
II. В него добавлем три рисунка (или четыри, или пять)
III. Свойство ImageList для TabControl1 устанавливаем в ImageList1
IV. Выбираем любую вкладку, и в свойстве ImageIndex ставим ссылку на картинку из ImageList1 (там список выпадающий будет)

Как кодом сделать, обяснять не буду, разберетесь (надеюсь)
2
Тут только через перерисовку контрола
3 ImageIndex поменять
4 ImageIndex поменять
Код: Выделить всё
    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        Select Case CheckBox1.CheckState
            Case CheckState.Checked
                TabPage2.ImageIndex = 0
            Case CheckState.Indeterminate
                TabPage2.ImageIndex = 1
            Case CheckState.Unchecked
                TabPage2.ImageIndex = 2
        End Select
    End Sub

а перерисовка, это отдельный вопрос
создаем контрол наследуем его от TabPage и рисуем в OnPageBackground

vld
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 28.12.2004 (Вт) 15:51

Сообщение vld » 22.02.2008 (Пт) 15:54

да, все получилось ок.
просто меня смутил вот этот совет на одном из форумов:

"TCS_OWNERDRAWFIXED, и рисуй "ярлычки" как взумается"

хотя обнаружился один неприятный момент: при перерисовке форма "моргает" :(
я думаю это баг VB.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 22.02.2008 (Пт) 17:12

ДНК


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 7

    TopList