INSTANCIAR UM OBJETO DE UMA CLASSE PARA TODOS FORM

IGORNICOLETTI 21/08/2009 09:16:38
#320516
Boa noite.
Estou com uma duvida basica aqui, é o seguinte:

Tenho uma classe e quero instanciar um objeto dessa classe no form principal e usa-lo nos outros forms que tenho no meu projeto.

Como posso fazer isso?

Valeu!
WEBMASTER 21/08/2009 10:07:04
#320526
Voce pode resolver o problema de varias maneiras...

a) Criar uma superclasse que herde Form e fazer os formularios serem na verdade instancias desta classe e ela por sua vez ter a property da classe customizada que voce citou

b) Criar a propriedade em todos os forms e ir compartilhando a medida que voce os constroi

c) Criar uma classe estatica (no vb a keyword shared) para a aplicacao
Private NotInheritable Class Globals Inherits Object Private Shared Sub New()
Public Shared MinhaString As String
End Class


Vale a pena ua visita neste link:

http://social.msdn.microsoft.com/Forums/en-US/vblanguage/thread/aa2427e3-a57f-4c38-adb9-0496d7e3eb9a
USUARIO.EXCLUIDOS 03/09/2009 18:11:05
#321877
Eu concordo com o webMaster, mas a melhor prática nesse caso seria criar uma Superclasse e fazer todos os seus Forms herdarem ela.
JWCELYO 03/09/2009 18:50:06
#321882
uma bom solução é criar module
dentro desse module vc instancia a class
ai essa instancia ficara disponivel para todo o projeto a assim evitando o ripetir de instaciar a class para outros forms

entendo?
[S96]
LEVII 21/09/2009 16:53:43
#323354
SE VC USAR CORRETAMENTE ORIENTACAO A OBJETOS, VOCE PODE FAZER OCMO O WEBMASTER DISSE...
UMA SUPERCLASSE QUE HERDA DE WINDOWS.FORMS E OS SEUS FORMS HERDAREM DELA OS ATRIBUTOS...
NO METODO CONSTRUTOR VC PODE PASSAR O VALOR QUE VC QUER PRA QUALQUER FORM..
GIORDANI 28/09/2009 19:37:41
#323894
cara.. vamos lá... tive que fazer algo semelhante para que não permitisse abrir duas telas de cadastro ao mesmo tempo, por exemplo.

primeiro crie suas janelas e depois, dentro da janela principal (do fonte) defina objetos públicos e estáticos do tipo de cada janela que tu queiras abrir.
Quando tu clicares sobre o botão que abrirá aquela janela instancie uma nova janela dentro daquela variável pública e estática, quando aquela janela se fechar, esta anulará a mesma... mais ou menos assim

<code>
// Janela principal:
public static frm_cadastro_cliente fcc;
public void form_load()
{
fcc = null; // na verdade não precisa disto, pois o .NET já faz isso automaticamente
}

public void btn_abre_cadastro_cliente (object sender, EventArgs e)
{
if (fcc.Equals(null)
{
fcc = new frm_cadastro_cliente();
}
else
{
MessageBox.Show([Ô]Esta janela já está aberta[Ô]);
}
}


// agora no método formClosing do frm_cadastro_cliente
janelaPrincipal.fcc = null;
</code>

desta forma tu poderás acessar qualquer coisa... ou não...
Na verdade eu não soube me expressar nem sei se entendi direito teu problema. Mas deixo ai uma contribuição que espero que ajude.

Abraço
JONATHANSTECKER 31/03/2011 10:27:10
#369833
Tópico encerrado, já que foram postadas soluções e o usuário não retornou para encerrar o mesmo.
Tópico encerrado , respostas não são mais permitidas