Access
 sql >> база данни >  >> RDS >> Access

Присвояване на изображения на възли за изглед на дърво-2

Въведение.

Надявам се, че сте намерили последните няколко седмици учебните сесии на Microsoft TreeView и ImageList Control за интересни и готови да поемете следващия епизод. Ако все още не сте преминали през по-ранните статии, тогава връзките са дадени по-долу.

  • Урок за контрол на дървовидния изглед на Microsoft
  • Създаване на меню за достъп с контрола за изглед на дърво
  • Присвояване на изображения на възли за изглед на дърво

Тази публикация е продължение на епизода от миналата седмица.

Миналата седмица създадохме няколко изображения и ги качихме в ImageList Контролирайте с помощта на VBA код за контрола на Microsoft Tree View. Препратката за контрола ImageList е предадена на свойството ImageList на контролата Tree View. След тези стъпки бихме могли директно да използваме имена на ключове на изображението или Индексни номера като възел [Изображение] и [Избрано изображение] Параметри в Nodes.Add() Метод на Microsoft Tree View Object. С помощта и на двете контроли бихме могли да създадем красиво меню на проекта на Microsoft Access, включващо елементи от менюто в йерархична структура с дървесни линии и визуално приятни елементи от менюто Изображения.

Формуляр за пробно изпълнение от миналата седмица с изображения на възел.

Изображението на менюто на Access от миналата седмица е дадено по-долу, с изображения на възли и дървесни линии.

VBA код за качване на изображения в контрола на ImageList.

Следва кодът на VBA, който използвахме за качване на изображения в възлите на ImageList Object:

Dim tvw As MSComctlLib.TreeView
Const KeyPrfx As String = "X"
Dim objimgList As MSComctlLib.ImageList


Private Sub CreateImageList()
Dim strPath As String

'Initialize Tree View Object
Set tvw = Me.TreeView0.Object
'Clear the Tree View Nodes, if any.
tvw.Nodes.Clear

'Initialize ImageList Object
Set objimgList = Me.ImageList0.Object
’the images must be saved in database path
strPath = CurrentProject.Path & “\”

With objimgList.ListImages
'Key Names are Case sensitive.
    .Add , "FolderClose", LoadPicture(strPath & "folderclose2.jpg")
    .Add , "FolderOpen", LoadPicture(strPath & "folderopen2.jpg")
    .Add , "ArrowHead", LoadPicture(strPath & "arrowhead.bmp")
    .Add , "LeftArrow", LoadPicture(strPath & "LeftArrow.bmp")
    .Add , "RightArrow", LoadPicture(strPath & "RightArrow2.bmp")
End With

With tvw
    .ImageList = objimgList
End With

End Sub

Докато представях горния код, споменах, че има по-лесен начин за качване на изображенията в ImageList Control, без VBA код. Освен това обещах да споделя изображенията, които използвах в горната демонстрация Възли за достъп до менюто. Ще стигнем до това след кратко време.

Ние не просто създавахме някои изображения и използването им. Но ние създадохме някои смислени изображения за нашето меню на проекта за достъп, базирано на Tree View.

Да вземем случая с изображенията на папката от основно ниво. FolderClose Стилът на изображението се използва за нормалния изглед на възела на коренно ниво, като същевременно скрива всички негови дъщерни възли от изглед. Когато потребителят щракне върху възела на коренно ниво, FolderOpen изображението се появява и разкрива неговите дъщерни възли. Второто щракване върху възела няма да промени изображението в нормален изглед, докато то има фокус, но дъщерните възли може да изчезнат от изгледа, в зависимост от TreeView0_NodeClick() Код на процедурата за събитие.

По същия начин дъщерните възли имат обърнатата наляво Лява стрелка изображение в нормален изглед и малко по-голямо изображение Стрелка надясно , сочещи надясно при щракване. Маркираните думи са ключови имена, използвани в контролата ImageList. Действието Щракване отваря Формуляр , Доклад, или Макро, в зависимост от избрания дъщерен възел.

Контролата ImageList във формуляра.

Списъкът с изображения Контролът е подчертан в изгледа за проектиране на горното frmMenu Формулярът е даден по-долу за справка:

Лист със свойства на контрола ImageList.

Изображението на листа със свойства на ImageList е дадено по-долу за справка:

Преглед на упражненията и подготовката от миналата седмица.

Миналата седмица избрахме изображението с размер 16 x 16 пиксела и качи необходимите изображения в горния ImageList Control с помощта на VBA код. След като качим всички изображения, ние предадохме препратката към обекта ImageList към Свойството на ImageList на контролата Tree View. .

След горните стъпки бихме могли да използваме Индексния номер или ключ-стойност от изображения в Добавяне() параметри на метода на възлите за изглед на дърво.

Не сме посочили първия параметър на метода Add() на ImageList. Но самият метод Add() вмъква индексния номер за всяко изображение в контролата ImageList. Запомнете, когато въведете Ключ стойност в метода Nodes.Add() [Image], [SelectedImage] Параметърът е чувствителен към главни букви . По-добре е, когато въвеждате ключови стойности, в Ключ на ImageList Control Текстна кутия, с малки букви.

Сега, както обещах да покажа лесния начин за зареждане на изображения в контролата ImageList. Това е толкова просто, колкото да изберете всички необходими изображения, едно по едно, от вашия диск ръчно и да ги добавите към ImageList Контрол, без никакъв VBA код.

Освен това, можете да споделяте контролата ImageList с други проекти, като просто копирате и поставите контролата ImageList в друг формуляр за проект, като всички изображения са непокътнати. Тогава всичко, което трябва да направите, е да използвате ключ-стойност или Индексен номер в метода Add() на контролните възли на TreeView.

Ако вече сте изтеглили демонстрационната база данни от публикацията от миналата седмица, отворете ProjectMenuV21.accdb . Запазихме копие на формуляра frmMenu с новото име frmMenu2 .

Добавяне на контрола ImageList във формуляр frmMenu2.

  1. Отворете формуляра frmMenu2 в Design View.

  2. Вмъкнете Microsoft ImageList Control от списъка с Activex Controls, някъде на празното място във формуляра frmMenu2.

  3. Променете неговото име Стойност на свойството до ImageList0.

  4. Щракнете с десния бутон върху контролата на списъка с изображения, маркирайте ImageListCtrl Object Опция, в показаното меню и изберете Свойства .

  5. Изберете предварително зададения размер на изображението 16 x 16 пиксела Опция в свойствата Общи Раздел. Важно е да изберете една от тези опции в Общи Първо табулация, преди да добавите изображение в Изображения Раздел.

  6. Изберете Изображения Раздел. Свойства Раздел "Изображения" изглежда като следното изображение:

  7. Кликнете върху Вмъкване на картина Команден бутон, намерете folder_closed примерно изображение (ако имате такова или изберете изображението, което сте подготвили по-рано), създали сте за пробно изпълнение миналата седмица, изберете го и кликнете върху Отваряне Команден бутон.

    Контролата ImageList ще изглежда като изображението, дадено по-долу, след вмъкване на избраното изображение.

  8. Три контроли в текстовото поле:Индекс , Клавиш и Маркер сега са активирани. Индексът контрола има стойност на индекса 1 се вмъква в него автоматично.

  9. Въведете текста folder_close или какъвто и ключ-стойност предпочитате да използвате в параметрите на метода Add() на контролата за изглед на дърво, в Ключ Контрол на текстовото поле. Неговият тип данни трябва да бъде от тип низ и уникален сред всички ключови стойности на изображението.

  10. Маркерът свойството може да се използва за запис на полезна информация, като името на пътя на изображението.

  11. Добавете всички необходими изображения от вашия диск, едно след друго, и въведете подходящи ключови стойности в контролата Key Text за всички изображения, които качвате. Използвайте прости, смислени и лесни за запомняне ключови стойности.

  12. Ако искате да премахнете някое изображение от контролата, изберете това изображение и щракнете върху Премахване на картина.

  13. Когато приключите със зареждането на изображения, кликнете върху Прилагане Команден бутон и след това щракнете върху OK за да затворите ImageList Контрол.

    Забележка: Не забравяйте, че сте добавили всички изображения, след като сте избрали изображението Размер 16 x 16 пиксела на Общи Раздел. След качване на изображения не можете да промените размера на изображението в раздела Общи. Ако предпочитате различна опция за размер на изображението, след качване на изображения, първо трябва да премахнете всички изображения. Само тогава ще можете да изберете различна опция за размер на изображението и след това да повторите процеса на качване отново.

    Контрола ImageList с повече изображения:

  14. В случай, че не сте сигурни какъв ключ-стойност сте въвели за конкретно изображение, щракнете върху изображението, за да се покаже ключ-стойност в Ключ Текстово поле.

  15. След като качите всички необходими изображения в контролата, те остават в контролата ImageList. Ако имате нужда от същите изображения в някой друг проект, можете да направите копие на ImageList Control където искате или да споделите формуляра/базата данни с други, с изображенията. Можете да добавите още изображения по този начин от ново местоположение.

  16. След като качим всички изображения, трябва да предадем препратка към контрола ImageList към Изглед на дърво Свойство ImageList на контрола както направихме по-рано след качване на изображения чрез VBA код.

  17. Следният примерен код ще предаде препратката на ImageList към свойството ImageList на контролата Tree View в нови проекти.

    Dim objimgList As MSComctlLib.ImageList
    
    'Initialize ImageList Object
    Set objimgList = Me.ImageList0.Object
    
    With tvw
        .ImageList = objimgList
    End With
    

Разширяване/свиване на възли с един команден бутон

  1. Отворете формуляр frmMenu2 в Design View.

  2. Изберете Свиване на всички Команден бутон, отворете неговата Процедура за събитие Щракнете и премахнете кода.

  3. Премахнете самия команден бутон от формуляра.

  4. Изберете Разгъване на всички Команден бутон, отворете неговата Процедура за събитие на щракване.

  5. Копирайте следния VBA код и го поставете, като презапишете съществуващите редове между cmdExpand_Click() . . . Край поди линии, както е показано по-долу:

Private Sub cmdExpand_Click()
Dim Nodexp As MSComctlLib.Node

If cmdExpand.Caption = "Expand All" Then
    cmdExpand.Caption = "Collapse All"
    
    For Each Nodexp In tvw.Nodes
        Nodexp.Expanded = True
    Next Nodexp
Else
    cmdExpand.Caption = "Expand All"
    
    For Each Nodexp In tvw.Nodes
        Nodexp.Expanded = False
    Next Nodexp
End If

End Sub
  1. Запазете и отворете frmMenu2 в нормален изглед.

  2. Надписът на командния бутон е Разгъване на всички сега.

  3. Щракнете върху командния бутон, за да разширите всички възли. Всички възли сега са в разширена форма. Надписът на командния бутон се променя на Сгъване на всички .

  4. Кликнете върху него отново и всички възли са в свито състояние, текстът на надписа се променя обратно на Разгъване на всички отново.

Следващата седмица ще видим използването на квадратчета за отметка на възли, за да научим как можем да идентифицираме проверените възли и да работим с тях.

МОДУЛ КЛАС

  1. Модул за клас MS-Access и VBA
  2. Обект и масиви от клас VBA на MS-Access
  3. Основен клас на MS-Access и производни обекти
  4. VBA-базов клас и производен обект-2
  5. Варианти на основен клас и производен обект
  6. Набор от записи и клас за MS-Access
  7. Достъп до модул за класове и класове за обвивка
  8. Функционалност на класа на обвивката

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете изчислено поле в Access

  2. 5 грешки в дизайна на база данни, които трябва да избягвате

  3. Как да добавите лого към заглавката на отчет в Microsoft Access

  4. Въведение в видовете диаграми

  5. Внимавайте за какво следите