POR FAVOR! biblioteca de clases

21/06/2006 - 12:34 por Hugo Gsell | Informe spam
Hola. Voy a ser un poco largo... pero creo es necesario.
El objetivo es crear una clase "generica" para crear pantallas de abm de
datos sin acceso a base ni nada
Es decir, un formulario con bonotes nuevo, modificar, grabar, imprimir,
buscar y salir... con sus iconos (imagenes) y comportamientos es decir, por
ej. si hago clic en nuevo que se deshabilite buscar... si estoy modificacndo
no puedo hacer nuevo.. y cosas de ese tipo o sea todo ese manejo es el
que deseo poder heredar a otros objetos.. con 2 o 3 procedimientos
reescribibles (mustoverride) que serian buscar, mostrar registro, y grabar
registro...
Hasta acá mas o menos el objetivo del formulario

Paso a explicar lo que hice:
*inicialmente cree un proyecto aplicacion windows.
*Cree un formulario llamado ABM cree la barra toolstrip (con sus botones
nuevo, grabar, etc) con sus iconos (imagenes)
*Luego programé el comportamiento de los botones y cree los procedimientos
(mustoverride) buscar, mostrar y grabar.

luego cree una clase llamada CLASS1 que heredó de mi clase base es
decir, el codigo del modulo de queda como en CODIGO1 (ver mas abajo) y
donde agrego el método new (para probar) y esta sobreescrito el
procedimiento
Ahora buenísimo... cuando hago doble clic en la clase class1, aparece el
formulario "clonado".
Luego, para probar cree otro formulario con un boton... donde en el evento
clic hace

Dim k As New Class1

y boilá... aparece el formulario CLONADO hasta acá de 10. Ahora quise
crear una biblioteca de clases, para poder crear una dll y utilizar esta
última.
creo el proyecto y en el codigo del formulario me subraya
Partial MustInherit Class ABM
Inherits System.Windows.Forms.Form

me subraya el SYSTEM.WINDOWS.FORMS.FORM diciendo que la misma NO ESTA
INCLUIDA

¿PORQUE ES ESTO? ¿COMO PUEDO SOLUCIONARLO?
Desde ya muchas gracias.

Hugo A. Gsell
Sgo del Estero
Argentina

CODIGO1:
Public Class Class1
Inherits ABM
Sub New()
Me.Show()
End Sub
Private Sub InitializeComponent()
Me.SuspendLayout()
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.ClientSize = New System.Drawing.Size(423, 297)
Me.Name = "Class1"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Public Overrides Sub MuestraRegistro()
'aca va el código de muestra regiostro Modificado (reescrito)
End Sub
End Class

Preguntas similare

Leer las respuestas

#11 Carlos Gómez
22/06/2006 - 19:48 | Informe spam
"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> wrote:

el bucle está bien, pero es más sencillo (y puede que tenga mejor
rendimiento) asi:



No creo. A diferencia de VB6, en .net por lo general For Each tiene un
rendimiento menor que accediendo por indice.




Bueno es saberlo, tenia el presentimiento que un 'for each' iba mejor que
recorrerlo por indices...

Desde Aguadulce - España
Carlos Gomez
Respuesta Responder a este mensaje
#12 Eduardo A. Morcillo [MS MVP VB]
23/06/2006 - 01:45 | Informe spam
El error lo dice todo:

El diseñador debe crear una instancia de tipo 'ClassAbmForm.ABM',
pero no se puede crear porque el tipo se ha declarado como abstracto.



Esto es causado por el metodo MustOverride. Deberas buscar otra forma de
hacer ese metodo.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida