PDA

View Full Version : سوال: اشکال در پاک کردن محتویات textbox



msadgd
یک شنبه 28 شهریور 1389, 13:22 عصر
با سلام خدمت دوستان
وقتی تعداد زیادی textbox توی فرم داریم و بخوایم یکدفعه محتویات همه textbox ها رو پاک کنیم از کد زیر استفاده می کنم :


Dim obj As Object
For Each obj In Me.Controls
If obj.GetType() Is GetType(TextBox) Then
DirectCast(obj, TextBox).Clear()
End If
Next


این کد در حالت عادی درست عمل میکنه. اما وقتی همین textbox ها توی مثلا یک گروپ باکس یا یک پنل قرار داشته باشن این کد عمل نمیکنه. چکار باید کرد؟

ممنون
پیروز و سلامت باشید

modirmasool
یک شنبه 28 شهریور 1389, 13:35 عصر
Dim o As Object

For Each o In Me.Controls

If o.GetType() Is GetType(TextBox) Then
o.Visible = False
End If

Next
For Each o In Me.GroupBox1.Controls

If o.GetType() Is GetType(TextBox) Then
o.Visible = False
End If

Next

ali_najari
یک شنبه 28 شهریور 1389, 14:48 عصر
از اين كد هم ميتوني استفاده كني



For Each Co As Control In Me.Controls
If TypeOf Co Is TextBox Then
Dim TB As TextBox = Co
TB.Clear()
End If
Next



يا ميتونيد از اين طريق هم انجام بديد اگه ميخوايد كه پارامتر تعريف نكنيد



For Each Co As Control In Me.Controls
If TypeOf Co Is TextBox Then
Co.Text = ""
End If
Next

msadgd
یک شنبه 28 شهریور 1389, 15:10 عصر
Dim o As Object

For Each o In Me.Controls

If o.GetType() Is GetType(TextBox) Then
o.Visible = False
End If

Next
For Each o In Me.GroupBox1.Controls

If o.GetType() Is GetType(TextBox) Then
o.Visible = False
End If

Next

مدیرمسئول جان اینجوری که کلا خود تکست باکس ویزیبلش فالس میشه. من فقط می خوام متن توی تکست باکس پاک بشه. البته کد قسمت o.visible رو تغییرش دادم به o.clear و درست شد. اما یه سوال: توی کدی که شما نوشتین تغییرات روی محتویات یک گروپ باکس اعمال میشه. حالا اگه چندتا گروپ باکس داشته باشیم چی؟

msadgd
یک شنبه 28 شهریور 1389, 15:15 عصر
از اين كد هم ميتوني استفاده كني



ForEach Co As Control InMe.Controls
IfTypeOf Co Is TextBox Then
Dim TB As TextBox = Co
TB.Clear()
EndIf
Next

يا ميتونيد از اين طريق هم انجام بديد اگه ميخوايد كه پارامتر تعريف نكنيد



ForEach Co As Control InMe.Controls
IfTypeOf Co Is TextBox Then
Co.Text = ""
EndIf
Next


علی جان این کد هم مثل کد خودم کنترل های داخل گروپ باکس رو تغییر نمیده :ناراحت:

modirmasool
یک شنبه 28 شهریور 1389, 17:06 عصر
بفرمایین:


Dim o As Object
Dim ob As Object

For Each o In Me.Controls
If o.GetType() Is GetType(TextBox) Then
o.Visible = False

End If

If o.GetType() Is GetType(GroupBox) Then

For Each ob In o.Controls

If ob.GetType() Is GetType(TextBox) Then
ob.Visible = False
End If

Next

End If
Next

اگه نا مفهومه سورس رو براتون گذاشتم حتما یه نگاه بهش بندازین.

راستی اگه خواستین فقط متن ها رو پاک کنین، از کدهای زیر استفاده کنین:


Dim o As Object
Dim ob As Object

For Each o In Me.Controls
If o.GetType() Is GetType(TextBox) Then
o.text = ""

End If

If o.GetType() Is GetType(GroupBox) Then

For Each ob In o.Controls

If ob.GetType() Is GetType(TextBox) Then
ob.text = ""
End If

Next

End If
Next

ali_najari
دوشنبه 29 شهریور 1389, 00:21 صبح
منم متوجه نبودم که شما ممکنه که گروپ داشته باشید شرمندم

مدیر مسئول کامل توضیح دادن تو پست اخرشون من دیگه جایی واسه حرف زدن ندارم چون کامل بود

msadgd
دوشنبه 29 شهریور 1389, 09:15 صبح
ممنون مدیر مسئول عزیز. عالی بود. کدهات هم مفهوم بود.
پیروز و سلامت باشی