none
TabControl Deshabilitar alungas fichas RRS feed

  • Pregunta

  • Tengo un TabControl con 3 fichas. Como puedo poner la ficha 2 y 3 tipo enabled = false, para que no se pueda ingresar en el mientras estoy trabajando en la ficha 1.
    • Cambiado Enrique M. Montejo martes, 29 de marzo de 2016 7:03 Pregunta relacionada con controles de Windows Forms.
    martes, 16 de abril de 2013 15:27

Todas las respuestas

  • Hola revisa este enlace podría ser de utilidad:

    Old Thread


    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos

    martes, 16 de abril de 2013 15:32
  • hola

    aqui

    http://social.msdn.microsoft.com/Forums/en-US/vbes/thread/f1140d20-c48b-47fb-b5ee-92ba73963c7e

    se trato el mismo tema, deshabilitat tab hasta donde se no se puede, peor si puedes remover o agregas estos tab de forma dinamica

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 16 de abril de 2013 15:36
  • Muchas gracias a los 2 por responder lo solucione asi:

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            '
            'Ocultar fichas 2 y 3
            '
            Me.TabPage2.Parent = Nothing
            Me.TabPage3.Parent = Nothing
    
        End Sub
    
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            '
            'Mostrar fichas 2 y 3 y llevar el foco a la ficha 2
            '
            Me.TabPage2.Parent = Me.TabControl1
            Me.TabPage3.Parent = Me.TabControl1
            Me.TabControl1.SelectedTab = TabPage2
    
        End Sub

    martes, 16 de abril de 2013 15:59
  • Hola:
    En un Form con 3 Button y 1 TabControl con 3 TabPages; y 1 TextBox, 1 ComboBox y 1 DateTimePicker en cada Tabpage, copia y pega el siguiente codigo

    Public Class Form1
        Private mbPag1 As Boolean = False
        Private mbPag2 As Boolean = False
        Private mbPag3 As Boolean = False


        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            lP_TabControlEnable(TabPage1, mbPag1)
            mbPag1 = Not mbPag1
        End Sub

        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            lP_TabControlEnable(TabPage2, mbPag2)
            mbPag2 = Not mbPag2
        End Sub

        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            lP_TabControlEnable(TabPage3, mbPag3)
            mbPag3 = Not mbPag3
        End Sub

        Private Sub lP_TabControlEnable(ByRef vrPaginaTab As TabPage, ByVal vbEnable As Boolean)
            For Each Ctrl As Control In vrPaginaTab.Controls
                If TypeOf Ctrl Is TextBox Then
                    CType(Ctrl, TextBox).Enabled = vbEnable
                ElseIf TypeOf Ctrl Is ComboBox Then
                    CType(Ctrl, ComboBox).Enabled = vbEnable
                ElseIf TypeOf Ctrl Is DateTimePicker Then
                    CType(Ctrl, DateTimePicker).Enabled = vbEnable
                End If
            Next
        End Sub
    End Class

    P.D.
    No bloquea el TabPage, pero te deja todos los controles contenidos en el tabpage bloqueados

    Un saludo desde Bilbo
    Carlos

    miércoles, 17 de abril de 2013 11:38
  • Muchas gracias amigo, también es una buena opción así no se pierde la estética del Tab de ocultar la ficha.

    Saludos...

    miércoles, 17 de abril de 2013 13:25
  • Primero debes tener una bandera que indique cuando estás trabajando o no en la ficha 1. Para esto una variable booleana dentro del form te puede ayudar.

    La inicializas en false en el load de la forma y dentro de la primera ficha colocas un boton que cambiará el booleano a true, indicando que ya terminaste de trabajar dentro de la ficha. Y junto con el evento selecting del tab resuelves el resto

    Private Sub Tab_Selecting(sender As Object, e As System.Windows.Forms.TabControlCancelEventArgs) Handles Tab.Selecting

          If e.TabPageIndex > 0 And var = False Then
             e.Cancel = True
          ElseIf e.TabPageIndex = 0 Then
             var = False
          End If


    • Editado José Rolando miércoles, 10 de julio de 2013 21:23 Mejora del codigo
    miércoles, 10 de julio de 2013 21:09