Я использую список изображений, чтобы показать изображения в виде списка.Пока я могу отображать все изображения в списке изображений, но расстояние между ними очень велико.Поэтому я использовал метод отправки сообщения , который породил еще одну проблему.Теперь, когда я щелкаю или перемещаю мышь (горячее отслеживание включено), любое изображение становится невидимым.Как я могу решить эту проблему?
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
До перемещения мыши:
![enter image description here](https://i.stack.imgur.com/JKBFp.png)
После перемещения мыши:
![enter image description here](https://i.stack.imgur.com/MiF5p.png)
Также у меня есть это большое левое поле, хотя для поля списка установлено значение Все = 3
Первый столбец изображений не отображается !!!
![enter image description here](https://i.stack.imgur.com/KL6h9.png)