como bloquear un ComboBox?? (Resuelto)

Iniciado por maxtextla, 21 Febrero 2008, 00:10 AM

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

maxtextla

el caso es que tengo 2 combobox,  kisiera ver si existe la forma de que si selecciono la palabra "SI" en la lista del primer combobox el segundo se desactivara, y viceversa, si selecciono la palabra "SI" del CB2 desactive al primero.
algo asi como:

Private Sub Form_Load()
If CB1.List = "Si" Then CB2.Enabled = False
End Sub


solo que VB me dice que "el argumento no es opcional"


existe alguna forma de hacerlo???

gracias!!!
Cuanto Mas Aprendo Mas Cuenta Me Doy de Lo Ignorante Que Soy!!

krackwar

pone este code :
agregar un timer i dos combobox
-------------------------
Private Sub Form_Load()
Combo1.AddItem "si"
Combo2.AddItem "no"
Timer1.Interval = 1
End Sub

Private Sub Timer1_Timer()
If Combo1.Text = "si" Then
Combo2.Enabled = False
Else
Combo2.Enabled = True
End If
End Sub
---------------------------------------
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

maxtextla

Gracias!!! krackwar

si me funciono!!!  ;)
Cuanto Mas Aprendo Mas Cuenta Me Doy de Lo Ignorante Que Soy!!

Chefito

#3
Private Sub Combo1_Change()
   If Combo1.Text = "si" Then Combo2.Enabled = False Else Combo2.Enabled = True
End Sub

Private Sub Combo1_Click()
   If Combo1.Text = "si" Then Combo2.Enabled = False Else Combo2.Enabled = True
End Sub

Private Sub Combo2_Change()
   If Combo2.Text = "si" Then Combo1.Enabled = False Else Combo1.Enabled = True
End Sub

Private Sub Combo2_Click()
   If Combo2.Text = "si" Then Combo1.Enabled = False Else Combo1.Enabled = True
End Sub

Private Sub Form_Load()
   Combo1.AddItem "si"
   Combo1.AddItem "no"
   Combo2.AddItem "si"
   Combo2.AddItem "no"
End Sub

Con los eventos combo_change se controla el cambio que producirías al escribir en los combos. O sea, que si escribes en uno "si", pues el otro se bloqueará. Los eventos combo_click controlas el click del ratón de los elementos de las listas. Si no te interesa, puedes obligar a que no se pueda escribir en los combos (poniendo en el interior del procedimiento combo_keypress, keyascii=13)......o utilizar listas, en las que no se puede escribir.
Saludos.
P.D. Esto es mucho más correcto que lo que te puso krackwar. Para eso estan sus eventos. Además, así no tienes que tener a un timer en todo momento conectado. Vamos, que se debe de hacer así ;)
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)

maxtextla

pues para el fin en que lo necesito los 2 estan bien, si existen diferencias a la hora de la ejecucion, el primero el que me paso krackwar te selecciona desde el momento en que pasa el puntero, y el tuyo (Chefito) hasta que le des click, yo los necesito para almacenarlos en una BD y despues mandarlos a imprimir, solo que me faltaba borrar el contenido de uno u otro si es que seleccionaba "SI" (para evitar que se imprimiera la palabra "NO") pero los 2 estan resueltos de la siguiente forma... gracias por su ayuda

el de krackwar:

Private Sub Form_Load()
Combo1.AddItem "Si"
Combo1.AddItem "No"
Combo1.AddItem " "

Combo2.AddItem "Si"
Combo2.AddItem "No"
Combo2.AddItem " "

Timer1.Interval = 1
End Sub

Private Sub Timer1_Timer()
If Combo1.Text = "Si" Then Combo2.Enabled = False: C2 = " "
If Combo1.Text = "No" Then Combo2.Enabled = True
If Combo1.Text = "" Then Combo2.Enabled = True

If Combo2.Text = "Si" Then Combo1.Enabled = False: C1 = " "
If Combo2.Text = "No" Then Combo1.Enabled = True
If Combo2.Text = "" Then Combo1.Enabled = True
End Sub


el de Chefito:
Private Sub Combo1_Change()
    If Combo1.Text = "si" Then Combo2.Enabled = False: Combo2.Text = " " Else Combo2.Enabled = True
End Sub

Private Sub Combo1_Click()
    If Combo1.Text = "si" Then Combo2.Enabled = False: Combo2.Text = " " Else Combo2.Enabled = True
End Sub

Private Sub Combo2_Change()
    If Combo2.Text = "si" Then Combo1.Enabled = False: Combo1.Text = " " Else Combo1.Enabled = True
End Sub

Private Sub Combo2_Click()
    If Combo2.Text = "si" Then Combo1.Enabled = False: Combo1.Text = " " Else Combo1.Enabled = True
End Sub

Private Sub Form_Load()
    Combo1.AddItem "si"
    Combo1.AddItem "no"
    Combo1.AddItem " "
   
    Combo2.AddItem "si"
    Combo2.AddItem "no"
    Combo2.AddItem " "
End Sub


en mi caso particular los 2 me sirvieron de maravilla... y ninguno se me hizo mas complicado que el otro.. gracias
Cuanto Mas Aprendo Mas Cuenta Me Doy de Lo Ignorante Que Soy!!

krackwar

#5
Cita de: maxtextla en 21 Febrero 2008, 01:26 AM
pues para el fin en que lo necesito los 2 estan bien, si existen diferencias a la hora de la ejecucion, el primero el que me paso krackwar te selecciona desde el momento en que pasa el puntero, y el tuyo (Chefito) hasta que le des click, yo los necesito para almacenarlos en una BD y despues mandarlos a imprimir, solo que me faltaba borrar el contenido de uno u otro si es que seleccionaba "SI" (para evitar que se imprimiera la palabra "NO") pero los 2 estan resueltos de la siguiente forma... gracias por su ayuda

el de krackwar:

Private Sub Form_Load()
Combo1.AddItem "Si"
Combo1.AddItem "No"
Combo1.AddItem " "

Combo2.AddItem "Si"
Combo2.AddItem "No"
Combo2.AddItem " "

Timer1.Interval = 1
End Sub

Private Sub Timer1_Timer()
If Combo1.Text = "Si" Then Combo2.Enabled = False: C2 = " "
If Combo1.Text = "No" Then Combo2.Enabled = True
If Combo1.Text = "" Then Combo2.Enabled = True

If Combo2.Text = "Si" Then Combo1.Enabled = False: C1 = " "
If Combo2.Text = "No" Then Combo1.Enabled = True
If Combo2.Text = "" Then Combo1.Enabled = True
End Sub


el de Chefito:
Private Sub Combo1_Change()
    If Combo1.Text = "si" Then Combo2.Enabled = False: Combo2.Text = " " Else Combo2.Enabled = True
End Sub

Private Sub Combo1_Click()
    If Combo1.Text = "si" Then Combo2.Enabled = False: Combo2.Text = " " Else Combo2.Enabled = True
End Sub

Private Sub Combo2_Change()
    If Combo2.Text = "si" Then Combo1.Enabled = False: Combo1.Text = " " Else Combo1.Enabled = True
End Sub

Private Sub Combo2_Click()
    If Combo2.Text = "si" Then Combo1.Enabled = False: Combo1.Text = " " Else Combo1.Enabled = True
End Sub

Private Sub Form_Load()
    Combo1.AddItem "si"
    Combo1.AddItem "no"
    Combo1.AddItem " " :xD :xD
   
    Combo2.AddItem "si"
    Combo2.AddItem "no"
    Combo2.AddItem " "
End Sub


en mi caso particular los 2 me sirvieron de maravilla... y ninguno se me hizo mas complicado que el otro.. gracias
el de chefito esta hecho mas "profesionalmente" por asi decirlo yo lo iba a escribir asi pero se me olvido cual era el evento correcto que era el evento Change
i me dio pereza abrir el vb6  :xD :xD :xD
pd:si estas empesando a ocupar vb6 te recomiendo el code de chefito  por que con el mio se hace mas complicado el code i hace que cueste mas leer el code el de chefito es mas ordenado ;)
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.