c# - Can't edit Form1 textbox from Form2 -
this question has answer here:
- how update textbox in form1 form2? 3 answers
in form1 have textbox filled char array values (*). in form2 change 1 of array values (change * letter) , have update form1 textbox. when press button - nothing happens. form2 code snippet:
private void button2_click(object sender, eventargs e) { .... .... letter = (char)form1.number; textbox1.text = letter.tostring(); //shows me letter i'm replacing '*' } private void button3_click(object sender, eventargs e) { frm1 = new form1(); form1.chararray[convert.toint32(frm1.numericupdown2.value)] = letter; //which array value i'm changing frm1.textbox2.text = string.empty; (int = 0; < frm1.numericupdown1.value; i++) { frm1.textbox2.text += form1.chararray[i]; } }
instead of editing form1-window talking about, creating new (yet invisible) 1 in event-handler , perform operations on that.
solution:
as doing fields (chararray, number), have give method "access" instance of form1 exists!
option 1: have done chararray , number, add static field form1 (something public static form1 instance;), , assign correct instance. example, put form1.instance = this; inside of form1's constructor.
option 2: wherever creating , showing form2-window (i guess there new form2().show() in code , bet has access instance of form1 - maybe within form1), pass right instance of form1 constructor argument, i.e. change form2's constructor accepts parameter of type form1 , call new form2(therightinstanceofform1).
summary: although "option 2" cleaner one, guess give more trouble "option 1": not did define several static fields (so not make difference add one), if using visual studio designer design form2, break change constructor...
Comments
Post a Comment