الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الوجهات الرسومية عن طريق ListView

مغلق
بدأه كفاح في 27 مايو 2006 · 6 رد · 1,058 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني

كثيرا ما فكرت ان اقوم بعمل وجهات رسومية خاص بي فقمت باستخدام ImageList1 و ListView لعرض الصور ListView وعند اختيار احد الصور يتم تنفيذ امر معين لقد قمت باكتابة الكود لها عن طريق select case ولكن يتم تنفيذ امر واحد فقط من اوامر الصور ياريت حد يدلينى على الطريقة الصحيحية عند اختيار احد الصور يتم تنفيذ امر معين واليكم الكود الذى حاولت استخدامة وفشل

	Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick
		Dim a As Integer
		Select Case ListView1.Items.Item(a).ImageIndex
			Case a = 0
				MessageBox.Show("0")
			Case a = 1
				MessageBox.Show("1")
			Case a = 2
				MessageBox.Show("2")
		End Select
	End Sub

الصور تظهر فى ListView ولا يوجد مشكله فيها احتاج عند الضغط على صورة تفيذ الرسالة الخاصة بال case الخاص بها

وشكرا لكم

تم تعديل هذه المشاركة بواسطة كفاح في 27 مايو 2006 في 16:32

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#2

بسم الله الرحمن الرحيم

حاول استخدام الحدث ItemActivate

بدلا من ListView1.DoubleClick

ليصبح الكود كالآتى

	Private Sub ListView1_ItemActivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.
		Dim a As Integer

ولاحظ أن هذا الحدث يتعامل مع العنصر النشط فقط

وللحصول على العنصر النشط

 Dim listItem As System.Windows.Forms.ListViewItem
		Dim listItems As System.Windows.Forms.ListView.SelectedListViewItemCollection
		listItems = ListView1.SelectedItems


 For Each listItem In listItems
' ضع الكود هنا
next

والله المستعان

تم تعديل هذه المشاركة بواسطة MohamedElSadany في 27 مايو 2006 في 22:14

#3

اشكرك اخى على الرد لكن على ما اعتقد ان الكود غير فعال ومازلت المشكلة قائمة كما هى وهى اظهار حالة واحدة من حالات الموجودة لقد ارفقت المثال حتى تتتضح الامور اكثر

WindowsApplication1.rar

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#5

جرب هذا الكود

ثم أخبرنى بالنتيجة

 Private Sub ListView1_ItemActivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.ItemActivate
		Dim listItem As System.Windows.Forms.ListViewItem
		Dim listItems As System.Windows.Forms.ListView.SelectedListViewItemCollection
		listItems = ListView1.SelectedItems
		For Each listItem In listItems
			MessageBox.Show(listItem.Index)
		Next
	End Sub
#6

شكرا اخى MohamedElSadany وشكرا اخى moudar345 نعم تم حل المشلكة من الوجهة النظرية لكن المشكلة قائمة لماذا

لانى احتاج ان اقوم بعمل لكل صورة بعد كل حالة من حالات بمعنى

فى الحالة الثالثة الى هى case 2 اريد فتح فورم بحث

وفى الحالة الاولى التى هى case 0 اريد فتح صلحيات المستخدم

بمعنى تنفيذ امر وليس معرفة رقم index

ارجوا ان اكون قد وضحت الصورة وشكرا لكم

تفضلوا لقد تم حل المشكلة لكن توجد بعض العيوب وهيا عدم المرونة التى المفروض استخدمها كـ oop لكن اسوف احول ان اطور هذا الحل وشكرا لكم جميعا

  Dim listItem As System.Windows.Forms.ListViewItem
		Dim listItems As System.Windows.Forms.ListView.SelectedListViewItemCollection
		listItems = ListView1.SelectedItems
		For Each listItem In listItems
			If listItem.Index = 0 Then
				MessageBox.Show("صلحيات المستخدم")
			ElseIf listItem.Index = 1 Then
				MessageBox.Show("العنوان")
			ElseIf listItem.Index = 2 Then
				MessageBox.Show("بحث")
			End If
		Next

وهذا حل اخر

	   Dim listItem As System.Windows.Forms.ListViewItem
		Dim listItems As System.Windows.Forms.ListView.SelectedListViewItemCollection
		listItems = ListView1.SelectedItems
		For Each listItem In listItems

			Select Case listItem.Index
				Case 0
					MessageBox.Show("صلحيات المستخدم")
				Case 1
					MessageBox.Show("العنوان")
				Case 2
					MessageBox.Show("بحث")
			End Select
next

تم تعديل هذه المشاركة بواسطة كفاح في 28 مايو 2006 في 00:55

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#7

الاخت العزيزة هذا حل اخر اتمنى ان يفى بالغرض

اذا كان ما تريدين مثل ما هو موجود فى الصورة

27_05_06_02_57_42_1148767062listview.jpg

و عند الضغط على احد العناصر هو تنفيذ بعض الاوامر فاليكى الكود

  Select Case ListView1.SelectedItems.Item(0).Index
			Case Is = 0 : MsgBox("u seclected index 0")
			Case Is = 1 : MsgBox("u selected index 1")
			Case Else : MsgBox("fine")
 End Select

هذا الموضوع مغلق.

مواضيع مشابهة