السلام عليكم و رحمة الله و بركاته
عند سؤال شباب كيفيةاعمل شكل ListView مثل الصورة اونلاين و اوفلاين و البيانات تحت بعض يعنى اظهر اسم المستخدام مع صور لون احمر اوفلاين و لون اخضر اونلاين

[
attachment=27117]
هي امثلة بالسي شارب لا كنها لا تحتاج لحويلها سوى أمور بسيطة مثل حذف الفاصلة المنقوطة و تغير الاقواس المربعة بالأقواس العادية و ما الى ذلك .
شكرا لك اخى العزيز ولكن حاولت تحويل من c# الى vb ولكن فشلت برجاء مساعدتى بمثال و اسف على الازعاج اخى الريم
(02-11-21, 02:35 PM)asemshahen5 كتب : [ -> ]
هي امثلة بالسي شارب لا كنها لا تحتاج لحويلها سوى أمور بسيطة مثل حذف الفاصلة المنقوطة و تغير الاقواس المربعة بالأقواس العادية و ما الى ذلك .
شكرا لك اخى العزيز ولكن حاولت تحويل من c# الى vb ولكن فشلت برجاء مساعدتى بمثال و اسف على الازعاج اخى الكريم
السلام عليكم قومت بعمل هذا الكود و هو شغل بدون مشكلة ولكن اريد ان يظهر جانب كلمة online و offline صورة صورة لون احمر offlineو صورة تانية لون اخضر online
و اريد ان يظهر سهم لغلق و افتح القايمة لكن من online و offline
ودى صورة اخر حاجة وصلتها و اشكر الاستاذ
asemshahen5
كود :
Imports System
Imports System.Drawing
Public Class Form2
Dim myImageList1 As System.Windows.Forms.ImageList = New ImageList()
Public Sub New()
InitializeComponent()
Dim myImageList1 As System.Windows.Forms.ImageList = New ImageList()
myImageList1.ImageSize = New Size(64, 64)
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\01.jpg"))
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\02.jpg"))
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\03.jpg"))
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\04.jpg"))
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\05.jpg"))
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\06.jpg"))
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\07.jpg"))
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\08.jpg"))
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\09.jpg"))
myImageList1.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\10.jpg"))
Dim myImageList2 As System.Windows.Forms.ImageList = New ImageList()
myImageList2.ImageSize = New Size(32, 32)
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\01.jpg"))
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\02.jpg"))
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\03.jpg"))
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\04.jpg"))
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\05.jpg"))
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\06.jpg"))
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\07.jpg"))
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\08.jpg"))
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\09.jpg"))
myImageList2.Images.Add(Image.FromFile("C:\Users\Soka\Desktop\New folder\10.jpg"))
myListView.LargeImageList = myImageList1
myListView.SmallImageList = myImageList2
myListView.Items.Add("Item 1", 0)
myListView.Items.Add("Item 2", 1)
myListView.Items.Add("Item 3", 2)
myListView.Items.Add("Item 4", 3)
myListView.Items.Add("Item 5", 4)
myListView.Items.Add("Item 6", 5)
myListView.Items.Add("Item 7", 6)
myListView.Items.Add("Item 8", 7)
myListView.Items.Add("Item 9", 8)
myListView.Items.Add("Item 10", 9)
Dim myLVGroup1 As ListViewGroup = New ListViewGroup("Online", HorizontalAlignment.Left)
Dim myLVGroup2 As ListViewGroup = New ListViewGroup("Offline", HorizontalAlignment.Left)
myListView.Groups.AddRange(New ListViewGroup() {myLVGroup1, myLVGroup2})
myListView.Items(0).Group = myListView.Groups(0)
myListView.Items(1).Group = myListView.Groups(0)
myListView.Items(2).Group = myListView.Groups(0)
myListView.Items(3).Group = myListView.Groups(0)
myListView.Items(4).Group = myListView.Groups(0)
myListView.Items(5).Group = myListView.Groups(1)
myListView.Items(6).Group = myListView.Groups(1)
myListView.Items(7).Group = myListView.Groups(1)
myListView.Items(8).Group = myListView.Groups(1)
myListView.Items(9).Group = myListView.Groups(1)
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
myListView.View = View.Tile
End Sub
[
attachment=27119]
سلام عليكم اخي الكريم
وجدت ماتطلبه في هذا الموضوع :
https://www.codeproject.com/Tips/1264552...e-ListView
تحتاج الى ان تستخدم ListView معدلة تضيف السهم لاغلاق وفتح المجموعة
كود :
Imports System.Runtime.InteropServices
Public Class CollapsibleListView
Inherits ListView
Private Const LVGF_STATE As Integer = &H4
Private Const LVGS_COLLAPSIBLE As Integer = &H8
Private Const LVM_FIRST As Integer = &H1000
Private Const LVM_SETGROUPINFO As Integer = (LVM_FIRST + 147)
Private Const LVM_INSERTGROUP As Integer = (LVM_FIRST + 145)
Private Const WM_LBUTTONUP As Integer = &H202
Protected Overrides Sub WndProc(ByRef message As Message)
Select Case message.Msg
Case WM_LBUTTONUP
MyBase.DefWndProc(message)
Case LVM_INSERTGROUP
MyBase.WndProc(message)
Dim group = Marshal.PtrToStructure(Of LvGroup)(message.LParam)
SetGroupCollapsible(group.iGroupId)
Return
End Select
MyBase.WndProc(message)
End Sub
<DllImport("user32.dll")>
Private Shared Function SendMessage(ByVal handle As IntPtr, ByVal message As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As Integer
End Function
<StructLayout(LayoutKind.Sequential)>
Private Structure LvGroup
Public cbSize As Integer
Public mask As Integer
<MarshalAs(UnmanagedType.LPTStr)>
Public pszHeader As String
Public cchHeader As Integer
<MarshalAs(UnmanagedType.LPTStr)>
Public pszFooter As String
Public cchFooter As Integer
Public iGroupId As Integer
Public stateMask As Integer
Public state As Integer
Public uAlign As Integer
End Structure
Private Sub SetGroupCollapsible(ByVal groupItemIndex As Integer)
Dim group As LvGroup = New LvGroup()
group.cbSize = Marshal.SizeOf(group)
group.state = LVGS_COLLAPSIBLE
group.mask = LVGF_STATE
group.iGroupId = groupItemIndex
Dim ip As IntPtr = IntPtr.Zero
Try
ip = Marshal.AllocHGlobal(group.cbSize)
Marshal.StructureToPtr(group, ip, False)
SendMessage(Handle, LVM_SETGROUPINFO, groupItemIndex, ip)
Finally
If ip <> IntPtr.Zero Then
Marshal.FreeHGlobal(ip)
End If
End Try
End Sub
End Class
اضف الكلاس الى مشروعك ثم استخدم CollapsibleListView بدلا من الليست فيو العادية
قمت باعداد مثال شبيه بما ارفقته
[
attachment=27127]
[
attachment=27128]
[
attachment=27129]
[
attachment=27130]