Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
The trick
-
- Постоялец

-
-
- Сообщения: 785
- Зарегистрирован: 26.06.2010 (Сб) 23:08
The trick » 07.11.2010 (Вс) 0:58
Здравствуйте. У меня вопрос по поводу изменения внешнего вида Листбокса. У него отсутствует свойство BorderStyle, есть только Appearance. При установке Appearance в Flat вокруг листбокса отображается черная рамка. Как ее можно убрать?
UA6527P
-
Хакер
-
- Телепат

-

-
- Сообщения: 16489
- Зарегистрирован: 13.11.2005 (Вс) 2:43
- Откуда: Казахстан, Петропавловск
-
Хакер » 07.11.2010 (Вс) 9:28
Зачем?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.
-
The trick
-
- Постоялец

-
-
- Сообщения: 785
- Зарегистрирован: 26.06.2010 (Сб) 23:08
The trick » 07.11.2010 (Вс) 10:17
Я делаю всплывающий листбох, который расположен на отдельной форме, и его черная рамка выглядит очень некрасиво. Хотелось бы ее убрать а вместо нее нарисовать уже другую. Просто сделав ее на два пикселя меньше чем форма, и сдвинуть на один пиксель(чтобы осталось между формой и листом пространство в один пиксель), а на форме в свою очередь нарисовать с помощью LINE цветную.
- Вложения
-

- Что то типа этого хочу получить
- Display.JPG (5.03 Кб) Просмотров: 1690
UA6527P
-
Viper
-
- Артефакт VBStreets

-

-
- Сообщения: 4394
- Зарегистрирован: 12.04.2005 (Вт) 17:50
- Откуда: Н.Новгород
-
Viper » 07.11.2010 (Вс) 11:35
Кривоус Анатолий писал(а):Здравствуйте. У меня вопрос по поводу изменения внешнего вида Листбокса. У него отсутствует свойство BorderStyle, есть только Appearance. При установке Appearance в Flat вокруг листбокса отображается черная рамка. Как ее можно убрать?
Если уж чертовски хочется, то есть такая штука как ownerdraw, в поиск по этому слову. Но таки присоединяюсь к
Хакеру с вопросом: "Зачем?"
Весь мир матрица, а мы в нем потоки байтов!
-
The trick
-
- Постоялец

-
-
- Сообщения: 785
- Зарегистрирован: 26.06.2010 (Сб) 23:08
The trick » 07.11.2010 (Вс) 23:17
За OwnerDraw спасибо-разобрался. А как можно сделать такое окно как в ВБ выскакивает(выпадающий список со свойствами).Пытался через SetWindowPos c параметрами SWP_SHOWWINDOW Or SWP_NOACTIVATE, появляется окно, но при щелчке мыши на нем главное окно теряет фокус, а нужно чтобы и в выпадающем можно было производить действия и в главном. Пробывал через SetWindowLong с GWL_STYLE и WS_POPUP, но ничего почемуто не меняется
UA6527P
-
FireFenix
-
- Продвинутый гуру

-

-
- Сообщения: 1640
- Зарегистрирован: 25.05.2007 (Пт) 10:24
- Откуда: Mugen no Sora
FireFenix » 07.11.2010 (Вс) 23:21
Viper писал(а):Но таки присоединяюсь к Хакеру с вопросом: "Зачем?"
наверное аналог IntelliSense

Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる
-
The trick
-
- Постоялец

-
-
- Сообщения: 785
- Зарегистрирован: 26.06.2010 (Сб) 23:08
The trick » 07.11.2010 (Вс) 23:45
Хакер писал(а):Зачем?
Это для стилизации я сделал свой tooltip на UC для него можно выбрать цвет фона а в соответствии с цветом фона рисуется рамка, так и для списка я хотел сделать.
Как в ToolTipe фон зеленый и рамка светло зеленая.
- Вложения
-

- Display.JPG (8.35 Кб) Просмотров: 1657
UA6527P
-
Хакер
-
- Телепат

-

-
- Сообщения: 16489
- Зарегистрирован: 13.11.2005 (Вс) 2:43
- Откуда: Казахстан, Петропавловск
-
Хакер » 07.11.2010 (Вс) 23:53
Кривоус Анатолий писал(а):я сделал свой tooltip на UC для него можно выбрать цвет фона
Маразм.
- Тултип должен быть только того цвета, какой выбран в этом системном окне настройки:
И никакого иного. - UC для тултипа — это сверхизбыточно в плане ресурсов, и недостатоно в плане правильного поведения (тултип обрежется границей клиентской области окна-родителя, а не должен). Для тултипа достаточно одного окна с POPUP-стилем, более того, в системе уже есть заготовка для этого.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.
-
The trick
-
- Постоялец

-
-
- Сообщения: 785
- Зарегистрирован: 26.06.2010 (Сб) 23:08
The trick » 07.11.2010 (Вс) 23:57
Кривоус Анатолий писал(а):тултип обрежется границей клиентской области окна-родителя, а не должен
Не обрезается.

- Display.JPG (7.91 Кб) Просмотров: 1655
UA6527P
-
Хакер
-
- Телепат

-

-
- Сообщения: 16489
- Зарегистрирован: 13.11.2005 (Вс) 2:43
- Откуда: Казахстан, Петропавловск
-
Хакер » 08.11.2010 (Пн) 0:08
По скриншоту не видно, где родитель. Скриншот ничего не говорит. Обрезается — говорят знания.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.
-
The trick
-
- Постоялец

-
-
- Сообщения: 785
- Зарегистрирован: 26.06.2010 (Сб) 23:08
The trick » 08.11.2010 (Пн) 0:14
А насчет моего второго вопросаникто не знает как можно реализовать
UA6527P
-
Mikle
-
- Изобретатель велосипедов

-

-
- Сообщения: 4158
- Зарегистрирован: 25.03.2003 (Вт) 14:02
- Откуда: Туапсе
Mikle » 08.11.2010 (Пн) 11:20
По первому вопросу - создаёшь новый UserControl, закидываешь на него ListBox, код такой:
- Код: Выделить всё
Option Explicit
Private Sub UserControl_Initialize()
ScaleMode = vbPixels
End Sub
Private Sub UserControl_Resize()
List1.Move -2, -2, ScaleWidth + 4, ScaleHeight + 4
UserControl.Height = (List1.Height - 4) * Screen.TwipsPerPixelY
End Sub
Public Property Get ListBox() As ListBox
Set ListBox = List1
End Property
Пользуешься через свойство ListBox, как полноценным листбоксом без рамки, только экспортируй все нужные события.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, PetalBot, Yandex-бот и гости: 4