نمایش نتایج 1 تا 3 از 3

نام تاپیک: خالی کردن تکس باکس ها در صفحه

  1. #1
    کاربر دائمی آواتار behrooz69
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    Gorgan
    سن
    33
    پست
    469

    Thumbs up خالی کردن تکس باکس ها در صفحه

    دوستان سلام من با این کد تکس باکس های داخل یه GroupBox رو خالی میکنم .

     Private Sub ClearAllTextBox()
    For Each grp As Control In Me.Controls
    If TypeOf grp Is GroupBox Then
    For Each ctl As Control In grp.Controls
    If TypeOf ctl Is TextBox Then
    ctl.Text = Nothing
    End If
    Next
    End If
    Next
    End Sub


    مشکل اینجاس ، که اگه یه GroupBox باشه کار میکنه و اگه چندتا گروپ باکس باشه کد کار نمیکنه .

    همفکری شما را خواستارم

  2. #2

    نقل قول: خالی کردن تکس باکس ها در صفحه

    سلام
    یک ماژول درست کنید و این متد رو داخلش بنویسید

    Public Sub FetchAllControls(parent As Control, action As Action(Of Control))

    For Each control As Control In parent.Controls
    action(control)
    FetchAllControls(control, action)
    Next


    End Sub


    بعد توی هر فرمی که خواستید ، به این شکل فراخوانی کنید

    FetchAllControls(Me, (Sub(x)
    Dim textBox = TryCast(x, TextBox)
    If (textBox IsNot Nothing) Then
    textBox.Text = String.Empty
    End If
    End Sub))


    با متد بالا می تونید ، هر خصوصیتی رو از هر کنترلی تغییر بدید و محدودیت نداره (فقط موقع فراخوانی مشخص می کنید چه نوع کنترلی مورد نظر شماست و کدام پراپرتی تغییر کنه)

    مثلا اگر بخواهید همه چک باکس های فرم رو تیک بزنید :

    FetchAllControls(Me, (Sub(x)
    Dim checkBox = TryCast(x, CheckBox)
    If (checkBox IsNot Nothing) Then
    checkBox.Checked = True
    End If
    End Sub))


    یا مثلا اگر بخواهید تمام چک باکس های روی GroupBox1 رو تیک بزنید:

    FetchAllControls(GroupBox1, (Sub(x)
    Dim checkBox = TryCast(x, CheckBox)
    If (checkBox IsNot Nothing) Then
    checkBox.Checked = True
    End If
    End Sub))


    موفق باشید
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  3. #3
    کاربر دائمی آواتار behrooz69
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    Gorgan
    سن
    33
    پست
    469

    نقل قول: خالی کردن تکس باکس ها در صفحه

    خیلی ممنونم ازتون ، دکمه تشکر برام غیر فعاله که تشکر کنم ازتون

    ماژول تعریف کردم

    و توی فرمم اومدم ماژول رو فراخوندم و دستورش.

    ولی اررور Type as expression داد ، و گیر میده که باید خود متد ماژول رو هم بنویسی دوباره یعنی اینجوری

     Module FetchAllControls

    Public Sub FetchAllControls(parent As Control, action As Action(Of Control))

    For Each control As Control In parent.Controls
    action(control)
    FetchAllControls(control, action)
    Next

    End Sub

    End Module



    و توی فرم :

     Public Class Form2

    Public Sub FetchAllControls(parent As Control, action As Action(Of Control))

    For Each control As Control In parent.Controls
    action(control)
    FetchAllControls(control, action)
    Next

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    FetchAllControls(Me, (Sub(x)
    Dim textBox = TryCast(x, TextBox)
    If (textBox IsNot Nothing) Then
    textBox.Text = String.Empty
    End If
    End Sub))
    End Sub


    End Class

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •