PDA

View Full Version : دریافت رویداد کلیک از 25 تکست باکس



pooya1072
یک شنبه 09 بهمن 1390, 10:05 صبح
با سلام
يك آرايه شامل 5 سطر و 5 ستون از textbox داريم . تكست باكسها را ايجاد كرده و در طي برنامه آنها را به عنوان يك آرايه 25 تايي از تکست باكس معرفي مي كنيم.مطابق دستورات زیر :





Dim Text(5 * 5) As Control
Private Sub UserForm_Click()
For i = 1 To 5
For j = 1 To 5
Index = ((i - 1) * 5) + j
Set Text(Index) = Controls.Item(Index - 1)
Text(Index).Object.Text = Index
Next j
Next i
End Sub




حالا من مي خوام روي هر كدام از تكست باكسها كه كليك كنم مقدار آن تكست باكس در caption فرم نشان داده شود.

البته توجه كنيد نمي خواهم براي هر تكست باكس و در رويداد Textbox_Click مربوط به هر تكست باكس جداگانه اين دستور را بنويسم.خيلي وقت گير ، شلوغ و غير معقول است.اگه ممكنه يك راه ميانبر براي اين كار به من معرفي كنيد.

Hybrid
یک شنبه 09 بهمن 1390, 11:57 صبح
سلام دوست عزیز ، یک روش اینه که یک Event عمومی واسه عمشون طبق شکل زیر ایجاد کنین و به نتیجه دلخواه برسین .



Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Click, _
TextBox2.Click, TextBox3.Click, TextBox4.Click, TextBox5.Click

Me.Text = sender.text

End Sub

موفق باشید./

pooya1072
یک شنبه 09 بهمن 1390, 20:02 عصر
با تشکر از The Life عزیز
جواب شما برای راه افتادن کار من کافیه.ولی من یه سوال دارم.آیا راهی هست که برنامه من منتظر تمام رویداد ها باشه برای هر جز موجود در فرم.یه مثال میزنم:به عکس زیر توجه کنید:

81673
برای هر یک از کنترل های موجود در این فرم رویداد های مختلفی وجود دارد.آیا راهی وجود دارد که تمام رویداد هایی که در هر لحظه ایجاد می شود را دریافت کرد و نام این رویداد را طی یک msgbox نشان داد.منظور من پردازش جمعی از رویداد های احتمالی است.

shadi khanum
یک شنبه 09 بهمن 1390, 22:35 عصر
دوست عزیز واسه اینکه بتونی یه چنین کاری کنی که هر event که اتفاق می افته تشخیص داده بشه باید کلا برنامتون رو بر اساس pattern شی گرایی به اسم command Patern بنویسی.اگه دوست داشتی یه سرچ کن ببین ..به کارت میاد..
موفق باشی

فرید نجفلو
شنبه 15 بهمن 1390, 23:06 عصر
سلام
اگه موارد خاصی از رویداد ها مد نظرتون باشه می تونین تو همون حلقه ایجاد تکست باکس ها از AddHandler استفاده کنید که برنامتون هم کم حجم تر می شه