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
Post a Comment