Autor Tema: Usercontrol Checkbox como OptionButton ....  (Leído 3320 veces)

0 Usuarios y 1 Visitante están viendo este tema.

AxioUK

  • Megabyte
  • ***
  • Mensajes: 108
  • Reputación: +17/-1
  • Modulos GSL
    • Ver Perfil
Usercontrol Checkbox como OptionButton ....
« en: Agosto 04, 2014, 12:47:33 pm »
Estimados
  Nuevamente apelo a la sabiduría de los expertos en Controles de usuario, para que me saquen de mi oscuridad, me surgió la necesidad gráfica de usar un Checkbox que actúe como OptionButton (solo uno activo por grupo), para evitar crear uno de cero, busque un usercontrol checkbox y traté de aplicar las modificaciones que necesito, el tema es que una sola cosa me está fallando: que funcione como OptionButton, osea que al marcar uno se desactive el resto del grupo en ese contenedor, por lo que buscando orientación en un usercontrol OptionButton encontré un código que me funciona cuando modifico el original, pero al implementarlo en este no funciona como requiero.

Código: [Seleccionar]
Private Sub ContainerCheck()
    Dim aControl As Object
    For Each aControl In UserControl.Parent.Controls
        If TypeOf aControl Is AxCheckBox Then
          If aControl.ButtonType = OptionButton Then
            'If aControl.Container.hWnd = UserControl.ContainerHwnd Then
            '    If aControl.hdc <> UserControl.hdc Then
                    If aControl.Value = True Then aControl.Value = False
            '    End If
            'End If
          End If
        End If
    Next
End Sub

Este es el enlace a los fuentes: http://www.4shared.com/rar/QaiIO8mace/ax_Checkbox.html

favor su ayuda para que funcione como OptionButton al indicar ButtonType=OptionButton

Agradecido

_____________________________
Sé un poco de todo y mucho de nada... ;)

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Usercontrol Checkbox como OptionButton ....
« Respuesta #1 en: Agosto 05, 2014, 07:31:04 am »
Hola, guiandome de un control que estaba en Recursosvisualbasic,

Código: [Seleccionar]
Private Sub ContainerCheck()
   

    Dim frm As Form
    Set frm = Extender.Parent
   
    Dim lHwnd As Long
    lHwnd = Extender.Container.hWnd

    Dim ctrl As Control
    For Each ctrl In frm.Controls
        With ctrl

           If TypeOf ctrl Is AxCheckBox Then

              If .ButtonType = OptionButton Then

                 If (.Container.hWnd = lHwnd) And _
                    (ctrl.hWnd <> UserControl.hWnd) Then
                   
                    If .Value Then .Value = False
                   
                 End If
              End If
           End If
        End With
    Next
End Sub

pero tenes algunas cosas un poco, un poco confusas, al menos para que me fucione también cambie esto, igual tenes que ir viendo bien todo  yo solo mire por arriba eso.

Código: [Seleccionar]
Public Property Let Value(ByVal nValue As Boolean)
    If (m_ButtonType = OptionButton) And (nValue = True) Then ContainerCheck
    m_Value = nValue
    PropertyChanged "Value"
    Call RenderCheckBox
End Property

Código: [Seleccionar]
Private Sub UserControl_Click()
   
   If MouseState.Button = vbLeftButton Then
      If m_Value = True Then
        If m_ButtonType <> OptionButton Then
            m_Value = False
            RaiseEvent Click
        Else
            Exit Sub
        End If
      Else
        m_Value = True
        RaiseEvent Click
      End If

      If m_ButtonType = OptionButton Then Call ContainerCheck
     
     
      Call RenderCheckBox
   End If

End Sub

en remplazo del Label podes usar el API DrawText.
Saludos.

Waldo

  • Gigabyte
  • ****
  • Mensajes: 264
  • Reputación: +22/-0
    • Ver Perfil
Re:Usercontrol Checkbox como OptionButton ....
« Respuesta #2 en: Agosto 05, 2014, 11:46:27 am »
Y no podes usar un OptionButton standart de VB con su propiedad Style en modo grafico?

AxioUK

  • Megabyte
  • ***
  • Mensajes: 108
  • Reputación: +17/-1
  • Modulos GSL
    • Ver Perfil
Re:Usercontrol Checkbox como OptionButton ....
« Respuesta #3 en: Agosto 05, 2014, 09:07:00 pm »
Muchisimas gracias estimado LeandroA

daré algunos retoques, revisaré lo del API Drawtext y lo publicaré aquí...


_____________________________
Sé un poco de todo y mucho de nada... ;)