تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيفية اخفاء عمود و تصغير حجم الكود listview
#1
Information 
السلام عليكم و رحمة الله و بركاته
عندى سؤال صغير لكن مشكلة و هو الكود التالى يتم عرض بيانات من الجدوال مع شرطين و هو اذا كان المستخدام اونلاين يتم العرض فى listview1 واذا كان اوفلاين يتم العرض فى listview2
ازاى اقدر اصغر حجم الكود ده؟؟؟ بحيث ان يتم البحث عن وجمع جميع البيانات و بعد ذلك يتم فلترة البيانات اذا كان اونلاين يتم عرض ادخل listview1 و اذا كان اوفلاين يتم عرض ادخلlistview2
كود :
   Sub online()
       If con.State = ConnectionState.Open Then con.Close()
       Form1.ListView1.Columns.Add("idfriend", 80, HorizontalAlignment.Left)
       Form1.ListView1.Columns.Add("namefriend", 80, HorizontalAlignment.Left)
       Form1.ListView1.GridLines = True
       con.Open()
       Dim cmd As New SqlCommand("select * from userandfriend where iduser=('" & Form1.Label5.Text.ToString & "') and Status=('online')", con)
       Dim da As SqlDataReader = cmd.ExecuteReader
       Form1.ListView1.Items.Clear()
       Do While da.Read = True
           Dim list1 = Form1.ListView1.Items.Add(da(0))
           list1.subitems.add(da(1))
       Loop
       If con.State = ConnectionState.Open Then con.Close()
   End Sub
   Sub offline()
       If con.State = ConnectionState.Open Then con.Close()
       Form1.ListView2.Columns.Add("idfriend", 80, HorizontalAlignment.Left)
       Form1.ListView2.Columns.Add("namefriend", 80, HorizontalAlignment.Left)
       Form1.ListView2.GridLines = True
       con.Open()
       Dim cmd As New SqlCommand("select idfriend,namefriend from userandfriend where iduser=('" & Form1.Label5.Text.ToString & "') and Status=('offline')", con)
       Dim da As SqlDataReader = cmd.ExecuteReader
       Form1.ListView2.Items.Clear()
       Do While da.Read = True
           Dim list1 = Form1.ListView2.Items.Add(da(0))
           list1.subitems.add(da(1))
       Loop
       If con.State = ConnectionState.Open Then con.Close()
   End Sub

السؤال الثانى و هو عندى عمود داخل listview وده بيحمل رقم الصديق idfriend عايز اخفى العمود ده و يظهر اسم الصديق فقط namefriend
لكن فى حالة الضغط على اسم الصديق namefriend يتم اظهر رسائل تحتوى على الرقم idfriend الخاص به من العمود المخفى و اسف على الاطاله
قال تعالى : يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ
الرد
تم الشكر بواسطة: أشرف كريم 2 , ابراهيم ايبو
#2
تفضل اخي الكريم

كود :
   Sub PopulateListViews()
       If Con.State = ConnectionState.Open Then Con.Close()

       For Each lst As ListView In {ListView1, ListView2}
           'lst.Columns.Add("idfriend", 80, HorizontalAlignment.Left)
           lst.Columns.Add("namefriend", 80, HorizontalAlignment.Left)
           lst.GridLines = True
       Next




       Con.Open()
       Dim cmd As New SqlCommand("select * from userandfriend where iduser=('" & Label5.Text.ToString & "')", Con)
       Dim da As SqlDataReader = cmd.ExecuteReader



       Do While da.Read = True
           Dim lst As ListView = If(da("Status") = "online", ListView1, ListView2)
           Dim i As New ListViewItem(da("namefriend").ToString)
           i.SubItems.Add(da("idfriend"))
           lst.Items.Add(i)
       Loop


       If Con.State = ConnectionState.Open Then Con.Close()
   End Sub


اما السؤال الثاني فكل ما عليك هو عدم اضافة العمود من البداية ولن يظهر ، عندما تضيف SubItem فانه لن يظهر
الرد
تم الشكر بواسطة: أشرف كريم 2 , alims , ابراهيم ايبو
#3
شكرا لك اخي العزيز و لكن اريد عند الضغط على اسم الصديق يتم أظهر رقم الصديق في رسالة نصيه مع إخفاء عمود رقم الصديق
قال تعالى : يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ
الرد
تم الشكر بواسطة: ابراهيم ايبو
#4
Information 
الحمد الله تم حل المشكلة وهي إخفاء العمود رقم الصديق و عند الضغط على اسم الصديق يتم أظهر الرقم و ده الكود المستخدام Idea
كود :
Listview1. Columns(1).width=0
If Listview1. Selectitems.count > 0 then
Msgbox(Listview1. Selectitems(0).subitems(1).text)
Else
End if

عندي سؤال تاني واسف على الازعاج يوجد حقل في نفس الجدول اسمو friendimg من نوع imageوده بيكون صور الصديق عايز الصورة تظهر بجانب اسم المستخدام
قال تعالى : يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ
الرد
تم الشكر بواسطة: ابراهيم ايبو
#5
اضفت ImageList1 وقمت باسنادها للخاصية LargeImageList و SmallImageList في ال listview الاثنان

ثم عدلت حلقة التكرار في الكود الى 

كود :
  Do While da.Read = True
            Dim status As String = da("status")
            Dim friendid As Integer = da("idfriend")
            Dim namefriend As String = da("namefriend")
            Dim friendimg As Byte() = da("friendimg")
            Dim lst As ListView = If(status = "online", ListView1, ListView2)

            Dim i As New ListViewItem(namefriend, friendid.ToString)
            ImageList1.Images.Add(friendid.ToString, ImgFromByte(friendimg))
            i.SubItems.Add(friendid)
            lst.Items.Add(i)
        Loop


قمت بتعريف الدالة التالية

كود :
 Function ImgFromByte(img As Byte()) As Bitmap
       Using ms As New MemoryStream(img)
           Return New Bitmap(ms)
       End Using
   End Function
   

ارفقت مثال قمت بعمله حسب فكرتك وكذلك قاعدة البيانات الخاصة به


الملفات المرفقة
.zip   OnlineOffline.zip (الحجم : 17.23 ك ب / التحميلات : 8)
.zip   Friends.zip (الحجم : 549.63 ك ب / التحميلات : 10)
الرد
تم الشكر بواسطة: ابراهيم ايبو , أشرف كريم 2 , alims
#6
شكرا ليك اخى انس ولكن حاولت عرض الصورة ولا انجاح فى ذلك و اريد عند الضغط على الاسم يظهر رسائل بارقم id للصديق 
وحاولت فتح المثل ولكن الاصدار الفيجوال عندى قديم 2010 اسف على الازعاج اخى الكريم
       

الحمد االكود يعمل بنجاح
كود :
Imports System
Imports System.Drawing
Imports System.Data.SqlClient
Imports System.IO
Public Class Form2
   Dim con As New System.Data.SqlClient.SqlConnection("Data Source=DESKTOP-SNS2QF4;Initial Catalog=SpicyMessenger;Integrated Security=True")
   Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       PopulateListViews()
   End Sub
   Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As EventArgs) Handles ListView1.DoubleClick, ListView2.DoubleClick
       Dim lst As ListView = sender
       If lst.SelectedItems.Count > 0 Then
           MsgBox(lst.SelectedItems(0).SubItems(1).Text)
       End If
   End Sub
   Function ImgFromByte(ByVal img As Byte()) As Bitmap
       Using ms As New MemoryStream(img)
           Return New Bitmap(ms)
       End Using
   End Function
   Sub PopulateListViews()
       If Con.State = ConnectionState.Open Then Con.Close()

       For Each lst As ListView In {ListView1, ListView2}
           'lst.Columns.Add("idfriend", 80, HorizontalAlignment.Left)
           lst.Columns.Add("namefriend", 80, HorizontalAlignment.Left)
           lst.GridLines = True
       Next
       con.Open()
       Dim cmd As New SqlCommand("SELECT useraddnew.id,useraddnew.surnameandname,useraddnew.img,userandfriend.Status FROM userandfriend INNER JOIN useraddnew ON userandfriend.idfriend = useraddnew.id WHERE (userandfriend.id = '60')", con)
       Dim da As SqlDataReader = cmd.ExecuteReader
       Do While da.Read = True
           Dim friendid As Integer = da("id")
           Dim namefriend As String = da("surnameandname")
           Dim friendimg As Byte() = da("img")
           Dim lst As ListView = If(da("Status") = "online", ListView1, ListView2)
           Dim i As New ListViewItem(namefriend, friendid.ToString)
           ImageList1.Images.Add(friendid.ToString, ImgFromByte(friendimg))
           i.SubItems.Add(friendid)
           lst.Items.Add(i)
       Loop
       If con.State = ConnectionState.Open Then con.Close()
   End Sub
End Class
قال تعالى : يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ
الرد
تم الشكر بواسطة: Anas Mahmoud


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Lightbulb [VB.NET] كيفية نجعل CheckBox في DataGridView كأنه RadioButton أبو خالد الشكري 3 138 , 02:12 PM
آخر رد: أبو خالد الشكري
  [VB.NET] الكود الجديد لا يعمل بالبرنامج بعد نقل البرنامج الى جهاز اخر فيجوال بيسك 2017 mustafa mohamed 3 118 , 07:37 AM
آخر رد: E100
  اريد تعديل الكود ليعمل على صف فى داتا جريد new_programer 14 343 , 07:26 AM
آخر رد: E100
  [VB.NET] كيفية تحويل قيمة textbox الي hex ابو ياسين ويزن 2 113 29-11-21, 09:35 PM
آخر رد: ابو ياسين ويزن
  تنفيذ الكود عند الضغط على checkbox الموجود في الداتاقريدفيو جيولوجي مبتدئ 0 80 29-11-21, 06:53 PM
آخر رد: جيولوجي مبتدئ
  اريد كود نفس هذا الكود للاكسس غدير الصليحي 4 188 28-11-21, 11:29 PM
آخر رد: غدير الصليحي
  [سؤال] فحص اذا كان item موجود فى ListView او لا alims 5 138 28-11-21, 10:00 PM
آخر رد: alims
  كيفية اضافة الصوت مع ظهور المسج بوكس ابو نور الهدى 1 91 28-11-21, 12:52 PM
آخر رد: سعود
Exclamation [VB.NET] فزعتكم شباب ... كيفية عرض جداول وأعمدة قاعدة البيانات أبو خالد الشكري 7 308 26-11-21, 05:53 PM
آخر رد: سعود
  السلام عليكم عندي جدولين جدول به التاريخ والكود وجدول به بيانات بنفس الكود ahmedhhh2 6 220 25-11-21, 12:54 AM
آخر رد: ahmedhhh2

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم