View Full Version : سوال: اشکال در پاک کردن محتویات textbox
  
msadgd
یک شنبه 28 شهریور 1389, 14: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, 14: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, 15: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, 16: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, 16: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, 18: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, 01:21 صبح
منم متوجه نبودم که شما ممکنه که گروپ داشته باشید شرمندم
 
مدیر مسئول کامل توضیح دادن تو پست اخرشون من دیگه جایی واسه حرف زدن ندارم چون کامل بود
msadgd
دوشنبه 29 شهریور 1389, 10:15 صبح
ممنون مدیر مسئول عزیز. عالی بود. کدهات هم مفهوم بود.
پیروز و سلامت باشی
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.