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

أريد ان اجعل Form يعمل عند الضغط على Node في ال Treeview

بدأه warning في 14 يونيو 2009 · 5 رد · 947 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

استخدم TreeView كمينيو رئيسي في برنامجي , أريد عندما يقوم اليوزر بالضغط على النوده مثلا التي اسمها السيارات تعمل فورمة السيارات (شاشة السيارات ) , ولو ضغط على نود الدراجات تعمل فورمه الدراجات وهكذا ..

#2

يمكنك عمل ذلك عن طريق اسم العقدة node

1- قم بوضع اسم فريد لكل node

2- قم بعمل اجراء حسب ما هو مبين ادناه

Sub getIndexNode()
		Me.Cursor = Cursors.WaitCursor
		Try

			Select Case Me.TrViewPrograms.SelectedNode.Name

				Case "N1_1" : My.Forms.frmAddBand.Show()
				Case "N1_2" : My.Forms.frmCityRecords.Show()
				Case "N1_3" : My.Forms.frmEnterDataBank.Show()
				Case "N1_4" : My.Forms.frmEditDelelet.Show()

			End Select
		Catch ex As Exception
		Finally
			Me.Cursor = Cursors.Default

		End Try


	End Sub

الان يمكنك وضع الاجراء في اي من sub التالية

  Private Sub TrViewPrograms_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrViewPrograms.DoubleClick
		getIndexNode()
	End Sub

	Private Sub TrViewPrograms_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TrViewPrograms.KeyUp
		If e.KeyCode = Keys.Enter Then
			getIndexNode()
		End If
	End Sub

تم تعديل هذه المشاركة بواسطة aswany في 14 يونيو 2009 في 13:10

#3

ما اقول الا الله يجزاك الجنه يارب ان شاء الله ..

الله كل شئ تمام .. بس التري انا خليتها يمين .. واقدر استخدم الاسهم عشان اطلع وانزل في التري .. لما اضغط يسار مثلا بالكيبورد يروح فاتح لي النودات .. ابغا لما اضغط يسار ومافي نودات يفتحهم يقوم يشغل لي نفس النوده ..

بصوره اوضح .. الان انا استدعي الداله الي فوق من داله دبل كليك .. ابغى اسم الداله الي تتأثر بالاسهم

#4

في الحقيقة لم استطع ان افهم ما تريد بالضبط ياريت لو صورة توضحيه تكون احسن .. ولكن في كل الحالات الاسهم تعمل داخل ال treeview بشكل آلى فهي ليست لفتح النماذج ولكن للحركة اعلى واسفل وفتح النودات الرئيسية وكذلك طي النودات المتفرعة ولا تستخدم لفتح النماذج.

انت استخدمت الدالة مع الحدث دبل كليك حاول مع الحدث الثاني وهو حدث KeyUp فعند الضغط على مفتاح انتر يتم استدعاء الداله المطلوبة يعني الفورم المطلوب .... حاول التغير وغير من الانتر في فتح النموذج الى اي شئ اخر .

#5

الله يجزاك بالخير

جربت الحدث KeyUp لكن مشكلته يفتح النوده بمجرد المرور عليها بدون انتر ..

انا مااريده هو التالي .. لنفرض عندي نوده اسمها السيارة .. وداخلها ثلاث نودات مثلا .. الابواب .. العجلات .. المصابيح ..

وكل نوده مربوطه بفورم معين ..

اول مايبتدي البرنامج اروح اضغط السهم يسار يفتح معاي نوده السياره وتظهر الثلاث نودات الداخليه .. اقوم ضاغط السهم تحت مرتين عشان اختار النوده الثانيه الي اسمها العجلات .. الان انا ابغى اضغط السهم يسار عشان افتح الفورم المربوط بالنوده عجلات .. لانه النوده عجلات مافيها نوده داخليه المفروض لما اضغط يسار يقوم فاتحها .. الحدث هذا ايش اسمه؟

شاكر لك ومقدر واتمنى الصوره اتضحت

#6

أسف جداً على التأخير لم افتح النت الا اليوم .. ظروف العمل

فقط اضف هذه السطور في حدث keyup

If e.KeyCode = Keys.Left Then
			If Me.TrViewPrograms.SelectedNode.IsSelected = True Then
				getIndexNode()
			End If

تم تعديل هذه المشاركة بواسطة aswany في 24 يونيو 2009 في 16:34

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