PDA

نسخه کامل مشاهده نسخه کامل : انتخاب يک کنترل با استفاده از اسم



Shahrdar
14-09-2007, 21:20
فرض کنين من 10 تا button دارم ميخوام تو يه حلقه اسمه اونا رو عوض کنم من اين کرو کردم ولی نشد



For i = 0 To 10
Me.Controls.Item("Button" & i).Name = i
Next



ولی قبول نميکنه من 3 روشه ديگه هم امتحان کردم ولی بازم کار نميکنه
اگه ميشه همفکری کنين

Shahrdar
14-09-2007, 22:19
من اينو گير اوردم کسی ساده تر از اين سراغ داره؟


Public Function GetControlByName(ByVal Name As String) As Object
''now, why would I put a "_" in front of the name?
Dim info As System.Reflection.FieldInfo = Me.GetType().GetField("_" & Name, _
System.Reflection.BindingFlags.NonPublic Or _
System.Reflection.BindingFlags.Instance Or _
System.Reflection.BindingFlags.Public Or _
System.Reflection.BindingFlags.IgnoreCase)

If info Is Nothing Then Return Nothing
Dim o As Object = info.GetValue(Me)
Return o

End Function

_H2_
15-09-2007, 11:07
سلام
1- برای چه میخواهید اسم را تغییر بدهید؟؟؟؟
2- کد دوم را در چه کلاسسی استفاده میکنید؟؟؟ در خود کلاسس فرم مینویسید؟؟؟؟ این کد بدون شک نام چیزی را تغییر نمیدهد!
3- کد اولی خودتان کاملاً صحیح است و باید جواب دهد، اگر کار نمیکند، حتماً یا نام را غلط میدهید یا ظرف را!

am_merman01
15-09-2007, 11:22
من اين كد رو استفاده ميكنم ببين كمكت ميكنه؟:46:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشي:10:

Shahrdar
15-09-2007, 22:47
مثل اينکه من نتونستم منظورم رو درست بيان کنم فرض کنين من به يه function نياز دارم که با دادن اسم يک ،آبجکت رو بهم بده مثله زير



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



شايد براتون سؤال پيش بياد که چرا به اين نياز دارم--- بخاطره اين که من 52 تا کليد دارم که اگه بخوام واسه هر تغييری 53 بار کد رو تکرار کنم پدرم در مياد

_H2_
17-09-2007, 10:07
سلام
همانطور که قبلاً گفتم کد اولی تان صحیح است و همچین تابعی داریم و نیاز نیست شما آن را بسازید!
مثل این کد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اگر جواب نمیدهد یا مشکل در نام است یا ظرف و لاغیر!
مثلاً کد فوق
نام ها را چنین در نظر گرفته تا جواب دهد
CommonName0
CommonName1
CommonName2
...
CommonName9
CommonName10
...

نه اینطور
CommonName00
CommonName01
CommonName02
....
CommonName09
CommonName10
...
البته برای سری دوم هم میتوان دستور نوشت ولی مقصودم آن است که حواستان به نام ها باشد.

ظرف هم یعنی چیزی که کنترلرهایتان روی ان قرار گرفته اند در حالت عادی ظرف همان فورمتان است ولی اگر از Panel یا TabControl و... استفاده کنید و کنترلارها را روی انها بچینید، طبیعتا آنها ظرف کنترلرهایتان محصوب میشوند و به جای جستجو در Me باید در آنها دنبال کنترلرهایتان بگردید.

اگر به دو نکته فوق دقت کنید، کد فوق باید جواب دهد و میدهد و نیازی به تابعی خاصی ندارید.

البته میتوانید کنترلرها را در یک ارایه جا دهید تا بتوانید به راحتی با ایندکس دهی به اعضا دسترسی داشته باشید.

hamedvahedi
07-10-2007, 21:30
چرا 52 کلید مستقل تعریف می کنی تا مجبور بشی 52 task تعریف کنی؟