[C con Clase] textbox de windows forms

Steven Davidson srd4121 en njit.edu
Sab Mar 12 20:49:31 CET 2011


Hola Álvaro,

On 3/12/2011 11:09 AM, alvaro martin garcia wrote:
> Tengo abierto un proyecto de visual studio 2010 de windows forms para
> visual c++
>
> En una clase tengo esto:
>
> #ifndef __SALIDAFORMS_H
> #define __SALIDAFORMS_H
> #include "Salida.h"
>
> class SalidaForms: public CSalida {
> public:
>      SalidaForms(System::Windows::Forms::TextBox ^ tb) {_tb = tb;}
>      virtual ~SalidaForms(){}
>      virtual void  InitPrueba(const std::string &desc) {}
>      virtual void  Muestra(int tam, float tiempo);
>      virtual void  FinPrueba(){};
>
> protected:
>      System::Windows::Forms::TextBox ^ _tb;
> };
>
> #endif
>
> Y me sale un error que me dice:
> "Error    1    error C3265: no puede declarar un elemento '_tb'
> administrado en un elemento 'SalidaForms' sin administrar
> d:\src\CSalidaForms.h    14"
>

Según la documentación este error tiene que ver con el uso de objetos 
administrados (o gestionados) dentro de clases no administradas. Una 
solución se basa en definir tu clase como "administrada", pero si no te 
interesa, entonces puedes usar la clase-plantilla 'gcroot'. Esto es,

SalidaForms( gcroot<System::Windows::Forms::TextBox ^> tb) {_tb = tb;}
...
gcroot<System::Windows::Forms::TextBox ^> _tb;


Espero que esto te ayude.

Steven





Más información sobre la lista de distribución Cconclase