이미지 목록을 사용하여 이미지를 목록보기로 표시하고 있습니다. 지금까지는 모든 이미지를 이미지 목록에 표시 할 수 있지만 각 이미지 사이의 간격은 매우 큽니다. 그래서 나는 다른 문제를 일으킨 Send Message method을 사용했습니다. 이제 클릭하거나 마우스를 움직이면 (핫 추적 사용) 이미지가 보이지 않게됩니다. 이 문제를 어떻게 해결할 수 있습니까? 마우스를 이동하기 전에목록보기에서 이미지 간 간격을 조정하는 방법
Imports System.Runtime.InteropServices
Public Class Form1
<DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=False)> _
Private Shared Function SendMessage(ByVal hwnd As IntPtr, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
End Function
Const LVM_FIRST As Integer = &H1000
Const LVM_SETICONSPACING As Integer = LVM_FIRST + 53
Public Sub SetSpacing(ByVal x As Int16, ByVal y As Int16)
SendMessage(Me.ListView1.Handle, LVM_SETICONSPACING, 0, x * 65536 + y)
Me.ListView1.Refresh()
End Sub
Private Sub Display()
For i As Integer = 0 To ImageList1.Images.Count - 1
Dim item As New ListViewItem()
item.ImageIndex = i
Me.ListView1.Items.Add(item)
Next
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Display()
SetSpacing(200, 16)
End Sub
End Class
:
마우스를 이동 한 후:
목록보기 마진이 모든으로 설정되어 있지만 또한 나는이 큰 왼쪽 여백이 = 3
이미지의 첫 번째 열이 표시되지 않습니다 !!! 당신의 x와 y 인수에
'LVM_SETICONSPACING'입니다. 그게 네가 쓰고있는거야? –
@CodyGray Listview.View = LargeIcon을 사용하고 있습니다. –