PDA

View Full Version : بررسی تمامی محتویات کنترلهای همنوع در یک فرم



mehdi58
شنبه 08 مهر 1385, 12:42 عصر
سلام
با توجه به کد زیر اگه من توی فرمم 5 تا Textbox‌ داشته باشم چرا به ترتیب محتویات آخرین Textbox تا اولین Textbox رو توی Label ذخیره می کنه ؟! ( به ترتیبTXT1,…,TXT4,TXT5 )
چرا نباید اول محتویات Textbox1‌ رو توی Label بریزه و همینطور الی آخر ...


Dim ctl As Control
For Each ctl In Page.Controls(1).Controls

If TypeOf ctl Is TextBox Then
Label1.Text += CType(ctl, TextBox).Text
End If
Next

rezaei manesh
شنبه 08 مهر 1385, 13:14 عصر
Label1.Text = CType(ctl, TextBox).Text+Label1.Text
اینو امتهان کن

mehdi58
یک شنبه 09 مهر 1385, 22:16 عصر
Label1.Text = CType(ctl, TextBox).Text+Label1.Text
اینو امتهان کن
کد شما که جواب نداد !

اما ....

من اومدم و دو تا آرایه در نظر گرفتم و توی For each در حین چک کردن کنترلها توی یکی ID و توی دیگری محتویات کنترل مورد نظرم رو ریختم آخر سر هم یه مرتب سازی انجام دادم و به اصطلاح آرایه هام رو Sort کردم .

اما ...

کسی جواب نداد که چرا اینطوری میشه ؟ایا دلیل خاصی داره ؟

Behrouz_Rad
دوشنبه 10 مهر 1385, 10:02 صبح
امیدوارم با مفهوم STACK آشنا باشی. با نام FILO یا LIFO هم شناخته میشه.
زمانی که کنترلی رو به فرم اضافه می کنی، این فرم ها در یک Stack قرار می گیرن.
از اونجا که ترتیب خواندن استک از آخر به اول است، واضح است که در زمان بازیابی کنترل ها با دستوری که نوشتی، بنا به ترتیب اضافه شدن به فرم، از آخر به اول خوانده میشن.

برای حل این مشکل، حلقه ی For رو به شکل ساده و به صورت نزولی بنویس.


For I As Int32 = Page.Controls.Count - 1 To 0

موفق باشی.

mehdi58
جمعه 14 مهر 1385, 12:01 عصر
مخلص آقا بهروز گل هم هستیم !