تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف ننقر خلية معينة في اداة Listview vb.net
#1
السلام عليكم ورحمة الله وبركاته
هل هناك ضبط معين في استحدام اداة Listview بحيث يمكنني من النقر على اي خلية فيه ومعرفة محتواه تماما كــdatagridview؟


لا استطيع نقر  الا العمود الاول فقط وهو الذي يمكن تظليله
PHP كود :
Public Class Form1
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        ListView1
.Columns.Add("Name")
 
       ListView1.Columns.Add("Email")
 
       ListView1.Columns.Add("Age")
 
       ListView1.Columns.Add("Buttons")
 
       ListView1.View View.Details
    End Sub
    Private Sub Button2_Click
(sender As ObjectAs EventArgsHandles Button2.Click
        Dim m 
As New ListViewItem(Tname.Text)
 
       m.SubItems.Add(email.Text)
 
       m.SubItems.Add(age.Text)
 
       m.SubItems.Add("رسالة")
 
       ListView1.Items.Add(m)
 
   End Sub
End 
Class 
الرد }}}
تم الشكر بواسطة:
#2
Me.Text = ListView1.FocusedItem.SubItems(1).Text

اذا فهمي صحيح
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
تم الشكر بواسطة: الوادي , سعود
#3
يوجد حل في الرابط، لكن لا يشعرك بالتفاعل مع الخلية نفسها مثل ما يحصل مع خلية DataGridViewCell
http://stackoverflow.com/questions/16719...pen-window
PHP كود :
Private Sub ListView1_MouseDown(sender As ObjectAs System.Windows.Forms.MouseEventArgsHandles ListView1.MouseDown
    Dim info 
As ListViewHitTestInfo ListView1.HitTest(e.Xe.Y)
    If 
Not IsNothing(info.SubItemThen
        MsgBox
(info.SubItem.Text)
    
End If
End Sub 

لم لم تستخدم DataGridView!
الرد }}}
تم الشكر بواسطة: سعود
#4
بارك الله فيكم جميعا
اعرف الوصول للخلية عن طريق الكود لكن اود معرفة ان كان بالامكان النقر على الخلية ذاتها.
...
أخي الوادي السبب هو الفضول ليس غيرها.
اريد اعرف ماهي فائدة هذه الاداة الاحظ انها اجمل من الـ Datagridview.
فيها شبة لـ Listbox و Datagridview من حيث اشتمالها على Items و Columns

فعلا تم الامر بالنسبة لكود  الاخ الوادي
لاحظت ظهور مربع تحديد هل هو مفعول الكود؟ ام المشكلة عندي
الرد }}}
تم الشكر بواسطة: الوادي , أبو عمر
#5
معقولة ListView أجمل من DataGridView


لاتنسى هناك فرق شايع بينهم بالاضافة لسهول إضافة عمود مخصص بنوع جديد للأداة الأخيرة.



غريب هذا المربع!
الرد }}}
تم الشكر بواسطة: سعود , الكاتب
#6
إقتباس :ايش تقصد مربع تحديد!
تظهر كما تظهر حين تود تحديد زرين او اي اداتين الا يظهر خط رقيق؟
هذا اللي اقصد.
المهم ماعلينا ...اتوقع انه لايمكن النقر على خلية معينة الا بالكود الذي اضفت.
واظن فعلا الفروق سبب للتفرقةSmileSmile
يعني لو زي بعض ايش الفايدة من التنويع بالادوات.
الرد }}}
تم الشكر بواسطة: الوادي
#7
وفيك بارك الله
تتميز بتغيير اسلوب عرض العناصر بينما Datagrid شكل شبكي
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
تم الشكر بواسطة: الوادي , الوادي , سعود
#8
ما حكاية تنويع، المسألة أن ListView قديمة جدا من أول ظهور الفجوال، وأنتجت ميكروزفت أداة جديدة تكون مرنة في التطوير من أي مبرمج.
الرد }}}
تم الشكر بواسطة: سعود
#9
(21-08-16, 12:25 AM)أبو عمر كتب : وفيك بارك الله
تتميز بتغيير اسلوب عرض العناصر بينما Datagrid شكل شبكي

اي نعم هذا اللي اقتنعت فيه الحين.
الرد }}}
تم الشكر بواسطة:
#10
عشان تعرف مدى سهولة إضافة عمود خاص من أنتاجك
ضع هذين الكلاسين تحت كلاس الفورم واعمل Build
وبعدين حاول تضيف عمود لأداة DataGridView وشوف الأنواع المعروضة
حتلاقي نوع جديد اسمه DataGridViewCustomColumn اللي هو اسم الكلاس اللي في الكود

PHP كود :
Public Class DataGridViewCustomColumn
    Inherits DataGridViewColumn

    Public Sub 
New()
 
       Me.CellTemplate = New DataGridViewCustomCell()
 
   End Sub

End 
Class

Public Class 
DataGridViewCustomCell
    Inherits DataGridViewTextBoxCell

    Protected Overrides Sub Paint
(graphics As GraphicsclipBounds As RectanglecellBounds As RectanglerowIndex As IntegercellState As DataGridViewElementStatesvalue As ObjectformattedValue As ObjecterrorText As StringcellStyle As DataGridViewCellStyleadvancedBorderStyle As DataGridViewAdvancedBorderStylepaintParts As DataGridViewPaintParts)
 
       MyBase.Paint(graphicsclipBoundscellBoundsrowIndexcellStatevalueformattedValueerrorTextcellStyleadvancedBorderStylepaintParts)

 
   End Sub

End 
Class 

لاحظ إنك تتعامل مع نفس أداة DataGridView الأساسية اللي من الفجوال، هذه المرونة اللي أقصدها.

طبعا حيكون الشغل كله في كلاس الخلية اللي اسمه DataGridViewCustomCell وفي الحدث Paint

وتقدر تضيف خصائص من عندك في كلاس العمود اللي هو DataGridViewCustomColumn على كيفك وتظهر في قائمة خصائص العمود للأداة DataGridView
يعني مثلا ضع هذا السطر في الكلاس DataGridViewCustomColumn ولاحظ خصائص العمود بعد إضافته
PHP كود :
Property myname As String "سعود" 
الرد }}}
تم الشكر بواسطة: سعود



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


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