Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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
IntPtr pointer = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(LVBKIMAGE)));

Dim pointer = Marshal.AllocHGLobal(Marshal.SizeOf(LVBKIMAGE))
public new string BackgroundImage

Public Property BackgroundImage As String
0x00000000

Вместо 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 Structure LVBKIMAGE
        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))
            ;DefWndProc(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))
            ;DefWndProc(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-сайт: 123
 Профиль | | #8
Добавлено: 21.07.05 13:00
[OFF]
Александр, смени, плиз ник, а то ты тут не один Александр.
[/OFF]

Ответить

Номер ответа: 9
Автор ответа:
 Swerige



Вопросов: 1
Ответов: 4
 Профиль | | #9 Добавлено: 21.07.05 14:55
2Empro: Поменял:)
Все вопросы остаются открытыми, хотя по BackgroundImage вроде все есть, но VB .Net ругается. Весь скрипт приведен выше.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам