Pointer vers une WinForm (.NET Framework 2)

Pointer vers une WinForm (.NET Framework 2) - C++ - Programmation

Marsh Posté le 01-06-2007 à 10:52:16    

Pointer vers une WinForm (.NET Framework 2)  
 
Bonjour à tous.
 
 
Je voudrais manipuler une winform, par exemple une ListBox, dans la classe managée où je l'ai déclarée, mais aussi dans une autre classe quelconque. Tel que:  
 
 
------------------------------------------------------------
classeA.h
------------------------------------------------------------
 
public ref class ClasseA : System::Windows::Form
{  
 ...
 
 //declaration
 public: int A;
 public: System::Windows::Forms::ListBox^ malistboxA;
 
#pragma region
 
 //parametres et autres générés par le concepteur
 malistboxA->Visible=true;
 ...
 
#pragma end region
};
 
------------------------------------------------------------
classeA.cpp
------------------------------------------------------------
 
Thread^ th = gcnew Thread(ClasseB::ClasseB(this->A ,this->malisteboxA))
 
 
 
 
 
 
------------------------------------------------------------
classeB.h
------------------------------------------------------------
 
public ref class ClasseB
{
 ClasseB::ClasseB(int B, ListBox^ malistboxB);
 ClasseB::~ClasseB();
};
 
 
------------------------------------------------------------
classeB.cpp
------------------------------------------------------------
 
ClasseB::ClasseB(int B, ListBox^ malistboxB)
{
malistboxB->Items->Add("COUCOU" );
}
 
ClasseB::~ClasseB();
 
------------------------------------------------------------
 
Tout compile sans problème.
Si je tente une manipulation dans la classe B:
 
 malistboxB->Items->Add("COUCOU" ); (voir ci-dessus)
 
 
Je me retrouve avec une exception ObjectNullREference... ou autre
 
Quelles sont les solutions, sachant que:
 
- Static ne change rien, ou surtout je ne sais pas comment m'y prendre :-)
- C'est peut-etre voire surement lié au fait que pointer vers un winform (managé) est difficilement faisable.. ?
 
 
Voila ! Je ne sais plus comment procéder ! Une idée?
Merci de votre attention.
 
 

Reply

Marsh Posté le 01-06-2007 à 10:52:16   

Reply

Marsh Posté le 01-06-2007 à 10:54:25    

Petite précision : tout compile bien. C'est seulement à l'exécution que l'exception apparait. ++

Reply

Marsh Posté le 25-06-2007 à 22:15:51    

utilise les delegates. la classe quelconque crée un event que t'as classe avec la listbox reçoit et lance la fonction qui lié à l''event.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed