• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

SLIFE

[Resolvido] O que é feito do Inherited Form No VB2008

19 mensagens neste tópico

Boas a todos

Alguém me sabe dizer como se faz agora para poder ter herança de formulários?

No VB 2008 existia a opção: Add -> New Item e ai escolher o Inherited Form.

Depois só tínhamos que dizer qual era o formulário Modelo!

Mas no Vb 2008 Express não estou a encontrar essa opção.

(Será que foi retirada?)

Como faço agora para poder ter um form como modelo para os outros?

Ja esperimentei ir directamente ao form1.designer.vb e alterar a:

Inherits System.Windows.Forms.Form

para:

Inherits form2

Mas não funciona, o Vb 2008 dá um erro.

Se alguém souber como resolver isto agradecia a ajuda.

Cumprimentos

SLIFE®

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja esperimentei ir directamente ao form1.designer.vb e alterar a:

Inherits System.Windows.Forms.Form

para:

Inherits form2

Mas não funciona, o Vb 2008 dá um erro.

Qual é o erro que dá ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual é o erro que dá ?

Boas jpaulino

O erro é:

Não foi possível apresentar o estruturador para este ficheiro porque nenhuma das classes do ficheiro pode ser estruturada. O estruturador inspeccionou as seguintes classes do ficheiro: Form2 --- Não foi possível carregar a classe base 'WindowsApplication1.Form1'. Certifique-se de que a assemblagem foi referenciada e que todos os projectos foram construídos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Resumindo: tu tens um form (que é o form2) e queres que o form novo fique igual ao form2, é isso ?

É que se tiveres um form criado (neste caso o form2) e colocares no design.vb isso (Inherits form2) tem de funcionar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Resumindo: tu tens um form (que é o form2) e queres que o form novo fique igual ao form2, é isso ?

É que se tiveres um form criado (neste caso o form2) e colocares no design.vb isso (Inherits form2) tem de funcionar.

Pois mas no VB 2008 nao esta a funcionar!

Assim que tentas abrir o form em modo de design da erro e nao se consegue fazer nada!

Eu em VB 2005 fazia isso e funcionava muito bem!

Agora em VB 2008 nao estou a conseguir

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não será antes:

Inherits WindowsApplication1.Form2

:hmm:

Boas

Ja experimentei como dizes mas da a mesma erro tal e qual como se meter so Form2

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê lá se tens algo do género:

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
    Inherits Form2

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        components = New System.ComponentModel.Container()
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.Text = "Form1"
    End Sub

End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê lá se tens algo do género:

Sim é isso mesmo!

Estas a usar o que? Vb 2005 ou 2008??

Se for 2008, e tentares abrir o form em modo design consegues?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, foi feito em 2008!

Vê um exemplo básico em anexo:

Se no teu Vb nao da erro, entao e do meu!

Porque aqui tambem me da o mesmo erro!

Estou a usar nesta maquina o Vb 2008 Express

E tu estas com qual? Vb Express ou VS2008?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

VS Express é uma versão do VS 2008 ou do VS2005.

Eu estou a usar a versão pro mas não devia ter qualquer diferença.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também uso o VB 2008 Express e aqui também deu erro.

Pessoalmente penso que, uma forma de dar a volta a esta situação, e, partindo do princípio que a ideia é ter TODAS as características do Form "a herdar" poder-se-ia fazer o seguinte:

1) No Form "a herdar" copiar (ou cortar) todo o código no separador "Form1.vb" e colar por baixo do código no separador "form1.designer.vb" (por exemplo, e sem apagar o que aí está).

Ou seja, só se vai apagar/esvaziar o código que copiamos no separador "form1.vb" por já se ter colado no "form1.designer.vb";

2) No form "que vai herdar" vais substituir (apagar) todo o conteúdo do "form1.designer.vb" pelo conteúdo no "form1.designer.vb" do form a herdar".

Não é uma herança... mas é a alternativa que consigo ver agora...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

VS Express é uma versão do VS 2008 ou do VS2005.

Eu estou a usar a versão pro mas não devia ter qualquer diferença.

Pois ja nao sei o que pensar!

Nao devia ter diferença, mas da-me erro!

Nao sei bem porque mas da!

E mais curioso e, que fiz uma exemplo em vb 2005, para experimentar e funciona!

Depois abri no 2008 e ele converteu o projecto e Funciona!

Mas se entrar directamente num novo projecto no 2008 e tentar fazer directo nao funciona!

Nao estou mesmo a perceber o que se esta a passar aqui!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não consigo entender porquê!

Coloca o "Inherits Form2" no código do form (por baixo de Class Form1). Irá aparecer um wizard que te permite escolher a alteração no designer. Vê se funciona assim!

Estão a compilar a aplicação ou ele não deixa ?

EDIT: Correcção ortográfica :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também uso o VB 2008 Express e aqui também deu erro.

Pessoalmente penso que, uma forma de dar a volta a esta situação, e, partindo do princípio que a ideia é ter TODAS as características do Form "a herdar" poder-se-ia fazer o seguinte:

1) No Form "a herdar" copiar (ou cortar) todo o código no separador "Form1.vb" e colar por baixo do código no separador "form1.designer.vb" (por exemplo, e sem apagar o que aí está).

Ou seja, só se vai apagar/esvaziar o código que copiamos no separador "form1.vb" por já se ter colado no "form1.designer.vb";

2) No form "que vai herdar" vais substituir (apagar) todo o conteúdo do "form1.designer.vb" pelo conteúdo no "form1.designer.vb" do form a herdar".

Não é uma herança... mas é a alternativa que consigo ver agora...

Boas é uma maneira

Mas nao se torna pratico pois todas as vezes que se quiser fazer uma alteração no form "Modelo" teremos que ir a todos os forms efectuar a alteração!

Mas obrigado pela ideia na mesma!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não consigo entender porquê!

Coloca o "Inherits Form2" no código do form (por baixo de Class Form1). Irá aparecer um wizard que te permite escolher a alteração no designer. Vê se funciona assim!

Estão a complicar a aplicação ou ele não deixa ?

Boas

Nao funciona!

E sim ele deixa compilar e correr o programa!

E se chamares o respectivo form ele aparece com as características do form "Modelo"

Pelo vistos apenas nao nos deixa mexer nele em modo design!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja consegui!!!!

Faz-se a alteração no Inherits e depois faz-se a compilação!

Após fazer a compilação já deixa mexer no modo de design.

Apenas se tem que fazer sempre uma compilação caso se altere alguma coisa no form Modelo!

Obrigado a todos os que tentaram ajudar

Especialmente a ti jpaulino, incansável como sempre!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Faz-se a alteração no Inherits e depois faz-se a compilação!

Após fazer a compilação já deixa mexer no modo de design.

Eu estava a achar estranho por isso perguntei se tinhas compilado!

Ainda bem que está resolvido e já agora temos o Topic Solved para indicar que o problema está resolvido :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora