Thursday, 15 January 2015

C# - How to save a string entered in Form2 in Form1 -



C# - How to save a string entered in Form2 in Form1 -

i default path registry steam installation. if has games installed different folder, user has come in in configure form. when form gets closed, path entered(from folder browser or typing path in manually) should saved string in main form , should enable different combobox turns on different buttons. somehow managed save mainform string, 2nd combobox doesn't seem turn on. how can correctly?

** main form **

public string newpath { get; set; } private configform otherform; string installpath = (string)registry.getvalue(@"hkey_current_user\software\valve\steam", "steampath", null); private void portalhammerbutton_click(object sender, eventargs e) { process.start(installpath + @"\steamapps\common\portal\bin\hammer.exe"); } private void gamedropdown_selectedindexchanged(object sender, eventargs e) { if (gamedropdown.text == "portal") // when portal selected { // enable portal sdk buttons portalhammerbutton.visible = true; portalmodelviewerbutton.visible = true; portalfaceposerbutton.visible = true; // disable cs:go sdk buttons csgofaceposerbutton.visible = false; csgohammerbutton.visible = false; csgomodelviewerbutton.visible = false; } else if (gamedropdown.text == "cs:go") // when cs:go selected { // disable portal sdk buttons portalhammerbutton.visible = false; portalmodelviewerbutton.visible = false; portalfaceposerbutton.visible = false; // enable cs:go sdk buttons csgofaceposerbutton.visible = true; csgohammerbutton.visible = true; csgomodelviewerbutton.visible = true; } } private void configurebutton_click(object sender, eventargs e) { var configdialog = new configform(); configdialog.show(); } private void portaldifferenthammerbutton_click(object sender, eventargs e) { process.start(newpath + @"\steamapps\common\portal\bin\hammer.exe"); } private void newdropdown_selectedindexchanged(object sender, eventargs e) { if (newdropdown.text == "portal") // when portal selected { // enable portal sdk buttons portaldifferenthammerbutton.visible = true; portaldifferentmodelviewerbutton.visible = true; portaldifferentfaceposerbutton.visible = true; // disable cs:go sdk buttons differentcsgofaceposerbutton.visible = false; differentcsgohammerbutton.visible = false; differentcsgomodelviewerbutton.visible = false; } else if (newdropdown.text == "cs:go") // when cs:go selected { // disable portal sdk buttons portaldifferentfaceposerbutton.visible = false; portaldifferenthammerbutton.visible = false; portaldifferentmodelviewerbutton.visible = false; // enable cs:go sdk buttons differentcsgomodelviewerbutton.visible = true; differentcsgohammerbutton.visible = true; differentcsgofaceposerbutton.visible = true; } } private void button1_click(object sender, eventargs e) { this.close(); configform cfgfrm = new configform(); cfgfrm.close(); } }

}

**configure form**

public partial class configform : form { public configform() { initializecomponent(); form1 frm1 = new form1(); frm1.newpath = newpathbox.text; } public void differentfolderbrowsebutton_click(object sender, eventargs e) { folderbrowserdialog fbd = new folderbrowserdialog(); dialogresult result = fbd.showdialog(); string newpath = fbd.selectedpath; newpathbox.text = newpath; form1 frm1 = new form1(); frm1.newpath = newpathbox.text; } public void closebutton_click(object sender, eventargs e) { this.hide(); form1 frm1 = new form1(); frm1.gamedropdown.visible = false; frm1.newdropdown.visible = true; } }

}

any help appriciated.

look @ configform. here's problem:

public configform() { initializecomponent(); form1 frm1 = new form1(); frm1.newpath = newpathbox.text; }

what you're doing on form1 (which i'm guessing main form) creating new instance of configform , showing it. you're doing in configform creating new main form , setting newpath = value entered on config form. problem new form1 not form1 created configform. form1 created config form not 1 getting updated code, arbitrary new form1 create 1 getting updated. why code isn't working expected.

here's approach take. add together newpath variable configform have in form1. then, add together formclosing method formconfig. this:

private void configform_formclosing(object sender, formclosingeventargs e) { newpath = newpathbox.text; }

then, alter code on form1 this:

private void button1_click(object sender, eventargs e) { configform cfgfrm = new configform(); cfgfrm.showdialog(); this.newpath = cfgfrm.newpath; }

what code doing creating , showing new configform on form1 when click button1. then, when user closes formconfig, form saves textbox value newpath variable on formconfig. then, 1 time form closed, code on form1 resumes. form1 looks @ newpath value saved when user closed formconfig. form1 grabs new newpath value , puts in own newpath variable.

edit

to show/hide comboboxes:

private void button1_click(object sender, eventargs e) { configform cfgfrm = new configform(); cfgfrm.showdialog(); this.newpath = cfgfrm.newpath; gamedropdown.visible = false; newdropdown.visible = true }

c#

No comments:

Post a Comment