toolbar en mdi

12/07/2005 - 22:37 por Miko_tnt | Informe spam
Por favor .

tengo un frame MDI con su respectiva toolbar y menu, ya tengo implementado
el funcionamiento de cada boton, y tambien tengo 2 frames que son hijas del
MDI que las llamo uando hago click en un menu...

El punto es el siguiente le hago un direct cast desde los frames hijos para
acceder a los elementos del MDI :

DirectCast(MdiParent, Form1).tbbcopiar.Enabled = False

Form1 es el frame padre y tbbcopiar es un boton de la toolbar , la
instruccon la llamo desde una ventana hija, y en otra ventana hija hago una
instruccon parecida pero que desabilite un boton diferente de la toolbar,

el caso es que si desabilito uno en la primera ventana hija tambien se me
desabilita en la otra, queria saber si existe alguna posiblidad de que cada
ventana hija tenga la tool bar personalizada(la misma del padre) pero que si
desabilito algo en una subventana en la otra nose me desabilite..

espero que hallan entendido mi duda y POR FAVOR cualquier ayuda les agradezco

Preguntas similare

Leer las respuestas

#1 Selrak
13/07/2005 - 13:00 | Informe spam
Buenas Miko,

Yo no entiendo mucho pero te comento lo que yo hago:
En el formulario padre donde tengo la toolbar capturo el siguiente
evento de la siguiente manera:

Private Sub frm_principal_MdiChildActivate(ByVal sender As Object,
ByVal e As System.EventArgs) Handles MyBase.MdiChildActivate
Dim frm_activo As iBotonera
Try
frm_activo = CType(Me.ActiveForm, iModobtn)

frm_activo.InicializarBotonera(Me)

Catch ex As Exception 'Cas excepció general
MsgBox(ex.Message(), MsgBoxStyle.Exclamation, "Error
Interno")
End Try

End Sub

Por supuesto cada formulario hijo implementa la interfaz iBotonera con
el metodo InicializarBotonera(frm as frm_padre) donde pongo el codigo
para configurar la toolbar segun politica de permisos, etc..
Tambien puedes ahorrarte la interfaz, con un metodo en el formulario
padre donde vuelva a poner los botones Enabled o algo estandard, etc...
Respuesta Responder a este mensaje
#2 Miko_tnt
13/07/2005 - 15:37 | Informe spam
Serlak gracias, pero kreo ke no te entiendo bien, el procedimiento entiendo
que se ejecuta la abrir cualquier formulario hijo,

ahora si en el form hijo ejecuto el codigo de ocultar el boton de la
toolbar(es lo uniko ke hago porke es una prueba) no se en que parte o como se
va a ejecutar iBotonera en el padre ya que no entiendo bien lo de :

Dim frm_activo As iBotonera

porke si entiendo bien eso debe ser un dll o una clase; pero la clase seria
la forma hija komo tal

por otra parte que seria iModobtn en:

frm_activo = CType(Me.ActiveForm, iModobtn)


gracias kualkier ayuda

"Selrak" escribió:

Buenas Miko,

Yo no entiendo mucho pero te comento lo que yo hago:
En el formulario padre donde tengo la toolbar capturo el siguiente
evento de la siguiente manera:

Private Sub frm_principal_MdiChildActivate(ByVal sender As Object,
ByVal e As System.EventArgs) Handles MyBase.MdiChildActivate
Dim frm_activo As iBotonera
Try
frm_activo = CType(Me.ActiveForm, iModobtn)

frm_activo.InicializarBotonera(Me)

Catch ex As Exception 'Cas excepció general
MsgBox(ex.Message(), MsgBoxStyle.Exclamation, "Error
Interno")
End Try

End Sub

Por supuesto cada formulario hijo implementa la interfaz iBotonera con
el metodo InicializarBotonera(frm as frm_padre) donde pongo el codigo
para configurar la toolbar segun politica de permisos, etc..
Tambien puedes ahorrarte la interfaz, con un metodo en el formulario
padre donde vuelva a poner los botones Enabled o algo estandard, etc...


Respuesta Responder a este mensaje
#3 Selrak
14/07/2005 - 14:15 | Informe spam
Perdona,
Puse iBotonera en lugar de iModobtn (o a la inversa).
Supongo que ya sabes lo que es una interfaz. Pues eso, creas una classe
que se puede llamar iModobtn que obliga a implementar el metodo o
funcion InicializarBotonera(frm as FormPrincipal) (Supongamos que el
form principal se llama asi, sustituyelo por el tuyo)
En cada formulario pones
(...)
implements iModobtn

y implementas el método

Function InicializarBotonera(frm as FormPrincipal) Implements
IModobtn.getModeActiu

'Aqui pones lo que quieres hacer en el Form principal, por ej
frm.ResetButonera() o lo que sea

End Function

Si esto te resulta complicado, en el evento MdiChildActivate pones
directamente el codigo que quieras. Si depende del formulario activo,
pues lo capturas y haces un
If typeof frm_activo is 'nombre del formulario
Elseif typeof frm_activo is
...
End if

Espero que te sirva

Por cierto, el evento se ejecuta cuando el formulario MDI hijo se
activa, no solo cuando se abre
Respuesta Responder a este mensaje
#4 Miko_tnt
14/07/2005 - 17:09 | Informe spam
gracias por la ayuda ... me fue bastante util
AgUaNtE MiLLoNaRiO



"Selrak" escribió:

Perdona,
Puse iBotonera en lugar de iModobtn (o a la inversa).
Supongo que ya sabes lo que es una interfaz. Pues eso, creas una classe
que se puede llamar iModobtn que obliga a implementar el metodo o
funcion InicializarBotonera(frm as FormPrincipal) (Supongamos que el
form principal se llama asi, sustituyelo por el tuyo)
En cada formulario pones
(...)
implements iModobtn

y implementas el método

Function InicializarBotonera(frm as FormPrincipal) Implements
IModobtn.getModeActiu

'Aqui pones lo que quieres hacer en el Form principal, por ej
frm.ResetButonera() o lo que sea

End Function

Si esto te resulta complicado, en el evento MdiChildActivate pones
directamente el codigo que quieras. Si depende del formulario activo,
pues lo capturas y haces un
If typeof frm_activo is 'nombre del formulario
Elseif typeof frm_activo is

End if

Espero que te sirva

Por cierto, el evento se ejecuta cuando el formulario MDI hijo se
activa, no solo cuando se abre


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida