.net - Using PaintEventHandler - Visual C++ (Studio 2010) Windows Forms Application -


so, creating windows forms application in visual c++ 2010, , want add event text box. when program loads, letter printed onto screen. when enter text box, letter supposed turn red.

the name of textbox anglea, , code have far:

this->anglea->enter += gcnew system::windows::forms::painteventhandler(this, &form1::anglea_enter); //many lines later this->controls->add(this->anglea); //many lines later public: system::void form1::anglea_enter(system::object^  sender, painteventargs^  e)       {          system::drawing::font^ textfonta = gcnew system::drawing::font("arial", 16);          system::drawing::solidbrush^ textbrusha = gcnew system::drawing::solidbrush(color::red);          e->graphics->drawstring("a", textfonta, textbrusha, 300, 120);      } 

the original drawing of letter happens in separate function, here:

    public: virtual void form1::onpaint(painteventargs^ pe ) override {    graphics^ g = pe->graphics;     system::drawing::font^ textfont = gcnew system::drawing::font("times new roman", 16);     solidbrush^ textbrusha = gcnew solidbrush(color::black);     g->drawstring("a", textfont, textbrusha, 300, 120);  } 

so, drawing of original letter works great, every time try build program enter event, following error:

error c2664: 'system::windows::forms::control::enter::add' : cannot convert parameter 1 'system::windows::forms::painteventhandler ^' 'system::eventhandler ^' 1>          no user-defined-conversion operator available, or 1>          types pointed unrelated; conversion requires reinterpret_cast, c-style cast or function-style cast 

it seems me form1 object (default name class in windows forms apps) accept eventhandler parameter "this->anglea->enter += gcnew " , not painteventhandler, dont understand why. there way create enter event function allow me paint after program has loaded, based on event?

thanks help, hope clear in question :)

you can add painteventhandler paint event; not enter event.

you want add normal eventhandler enter event , call invalidate() in handler.


Comments