Я верю тому, что Вы хотите, перечисление типа флага.
необходимо добавить, что Флаги приписывают вершине перечисления, и затем можно объединить перечисления с 'Или' ключевое слово.
Как это:
<Flags()> _
Enum CombinationEnums As Integer
HasButton = 1
TitleBar = 2
ReadOnly = 4
ETC = 8
End Enum
Примечание: числа направо являются всегда вдвое более большими (полномочия 2) - это необходимо, чтобы быть в состоянии разделить отдельные флаги, которые были установлены.
Объединение желаемые флаги с помощью Или ключевое слово:
Dim settings As CombinationEnums
settings = CombinationEnums.TitleBar Or CombinationEnums.Readonly
Это устанавливает TitleBar и Только для чтения в перечисление
Для проверки то, что было установлено:
If (settings And CombinationEnums.TitleBar) = CombinationEnums.TitleBar Then
Window.TitleBar = True
End If
Для обновления:
Заявление об ограничении ответственности: я работаю в Atalasoft
. В нашем .NET Imaging SDK есть элемент управления эскизами изображений, DotImage
Создание настраиваемого элемента управления было бы неплохо. Я бы унаследовал от Panel или Usercontrol, поскольку я считаю, что оба они автоматически добавляют полосы прокрутки для контента.
Динамическое добавление контейнеров (например, PictureBoxes) и подписей для каждого изображения, обработка события mousedown или mouseclick для контейнера и, возможно, рисование красного квадрата вокруг него, чтобы показать, что он выбран. Самая «сложная» часть - это передискретизация изображения до 128x128, если они еще не такого размера, и даже это можно легко сделать с помощью GDI +.
Вы можете использовать FlowLayoutPanel и помещать в нее графические блоки. Установите для окна изображения размер 128x128, а для режима размера - «масштабирование» (это позволяет изменить размер изображения без потери соотношения сторон). Вы даже можете программно добавлять блоки изображений.
PictureBox pb = New Picturebox;
pb.image = gcf.image128;
FlowLayoutPanel1.Controls.Add(pb)
Поскольку вам нужно иметь метку под блоком изображений, вы можете создать Usercontrol, как сказал Пастор, что все, что у него есть, это блок изображений и метка под ним. Тогда это будет экземпляр элемента управления, который вы добавите в свою панель flowlayout.
ObjectListView (an open source wrapper around a .NET ListView) makes it easy to custom draw a Tile view. Have a look at the Complex view on the demo, switch to Tile view when custom draw is enabled:
(source: sourceforge.net)
If you only wanted a 128x128 image plus some text details, you wouldn't even need to owner draw it. You could give it a large imagelist, and then mark which bits of textual information you wanted to show on the Tile, using IsTileViewColumn.