Страница: 1 |
Страница: 1 |
Вопрос: ListView и несколько вопросов
Добавлено: 13.07.05 15:28
Автор вопроса: Swerige
Есть два вопроса по ListView в VB .Net.
1. У LV есть свойство BackgroundImage. Задал картинку и долго пытался заставить отображаться ее. Так и не получилось. С другими элементами таких проблем не возникает.
2. Как заставить мышкой перемещать иконки и задавать им новое место расположения, как в Explorer
Помогите!!!:)))
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
ZeroX
ICQ: 220401330
Вопросов: 47
Ответов: 406
Профиль | | #1
Добавлено: 13.07.05 20:01
http://www.gotdotnet.ru/DotNet/FAQ/WindowsForms/ListView/32117.aspx
Это по Backgroundimage
Номер ответа: 2
Автор ответа:
Swerige
Вопросов: 1
Ответов: 4
Профиль | | #2
Добавлено: 15.07.05 02:05
А перевести на VB можно. На самом деле частично перевел, но в некоторых местах затык. Если не сложно конечно! Буду очень благодарен
Номер ответа: 3
Автор ответа:
ZeroX
ICQ: 220401330
Вопросов: 47
Ответов: 406
Профиль | | #3
Добавлено: 16.07.05 14:13
Какие именно куски кода?
Номер ответа: 4
Автор ответа:
Swerige
Вопросов: 1
Ответов: 4
Профиль | | #4
Добавлено: 18.07.05 10:36
Вот, например, фрагмент, который корректно не удалось перевести
IntPtr pointer = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(LVBKIMAGE)));
Постоянно подсвечивается синтаксис объявления public new string BackgroundImage,
а также все значения, типа 0x00000000
Номер ответа: 5
Автор ответа:
ZeroX
ICQ: 220401330
Вопросов: 47
Ответов: 406
Профиль | | #5
Добавлено: 18.07.05 13:50
Dim pointer = Marshal.AllocHGLobal(Marshal.SizeOf(LVBKIMAGE))
Public Property BackgroundImage As String
Вместо 0x подставь &H
Номер ответа: 6
Автор ответа:
ZeroX
ICQ: 220401330
Вопросов: 47
Ответов: 406
Профиль | | #6
Добавлено: 18.07.05 13:51
Упс
Dim pointer as IntPtr=...
Номер ответа: 7
Автор ответа:
Swerige
Вопросов: 1
Ответов: 4
Профиль | | #7
Добавлено: 18.07.05 21:24
Привожу почти весь переведенный код. Подчеркнутым отмечено то, на что ругается:
Public ulFlags As ListViewBkImageFlags
Public hbm As IntPtr
Public pszImage As IntPtr
Public cchImageMax As Integer
Public xOffsetPercent As Integer
Public yOffsetPercent As Integer
End Structure
Public Enum ListViewBkImageFlags
LVBKIF_SOURCE_NONE = &H0
LVBKIF_SOURCE_HBITMAP = &H1
LVBKIF_SOURCE_URL = &H2
LVBKIF_SOURCE_MASK = &H3
LVBKIF_STYLE_NORMAL = &H0
LVBKIF_STYLE_TILE = &H10
LVBKIF_STYLE_MASK = &H10
LVBKIF_FLAG_TILEOFFSET = &H100
LVBKIF_TYPE_WATERMARK = &H10000000
End Enum
Public Property [U]BackgroundImage()[/U] As String
Get
Dim backImage As New LVBKIMAGE
backImage.ulFlags = ListViewBkImageFlags.LVBKIF_SOURCE_URL
backImage.cchImageMax = MAX_BUFFER_SIZE
Dim stringPointer As IntPtr = Marshal.AllocHGlobal(MAX_BUFFER_SIZE)
backImage.pszImage = stringPointer
Dim pointer As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf([U]LVBKIMAGE[/U])
Marshal.StructureToPtr(backImage, pointer, True)
Dim message As Message = message.Create(Handle, Int(Messages.LVM_GETBKIMAGEW, [U]Zero[/U], pointer))
 efWndProc(Message)
Dim fileName As String = Marshal.PtrToStringUni(stringPointer)
Marshal.FreeHGlobal(stringPointer)
Marshal.FreeHGlobal(pointer)
Return fileName
End Get
Set(ByVal Value As String)
Dim backImage As New LVBKIMAGE
backImage.ulFlags = ListViewBkImageFlags.LVBKIF_SOURCE_URL
backImage.pszImage = Marshal.StringToHGlobalUni(Value)
Dim pointer As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(LVBKIMAGE))
Marshal.StructureToPtr(backImage, pointer, False)
Dim message As Message = message.Create(Handle, Int(Messages.LVM_SETBKIMAGEW, [U]Zero[/U], pointer))
 efWndProc(message)
Marshal.FreeHGlobal(pointer)
End Set
End Property
Enum Messages
LVM_FIRST = &H1000
LVM_SETBKIMAGEW = LVM_FIRST + 138
LVM_GETBKIMAGEW = LVM_FIRST + 139
End Enum
Номер ответа: 8
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #8
Добавлено: 21.07.05 13:00
[OFF]
Александр, смени, плиз ник, а то ты тут не один Александр.
[/OFF]
Номер ответа: 9
Автор ответа:
Swerige
Вопросов: 1
Ответов: 4
Профиль | | #9
Добавлено: 21.07.05 14:55
2Empro: Поменял
Все вопросы остаются открытыми, хотя по BackgroundImage вроде все есть, но VB .Net ругается. Весь скрипт приведен выше.