Forum » Programiranje » C# začetniško vprašanje - klicanje metode
C# začetniško vprašanje - klicanje metode
Poldek1 ::
Pozdravljeni
Žal ne najdem rešitve za en zelo osnovni problem pri programiranju v C#.
Imam glavni program ter dva okna (windows form). V glavnem programu kličem Form2. Z gumbom iz Form2 kličem Form1. Sedaj pa želim z gumbom iz Form1 poklicati metodo PS() iz glavnega programa.
Če to poskušam narediti tako:
SolidWorksMacro sw = new SolidWorksMacro();
sw.PS();
potem dobim error: No overload for method 'SolidWorksMacro' takes '0' arguments
Nimam pa ideje kaj bi lahko dal za arguments.
Glavni program:
Form2:
Form1:
Prosim za pomoč
Žal ne najdem rešitve za en zelo osnovni problem pri programiranju v C#.
Imam glavni program ter dva okna (windows form). V glavnem programu kličem Form2. Z gumbom iz Form2 kličem Form1. Sedaj pa želim z gumbom iz Form1 poklicati metodo PS() iz glavnega programa.
Če to poskušam narediti tako:
SolidWorksMacro sw = new SolidWorksMacro();
sw.PS();
potem dobim error: No overload for method 'SolidWorksMacro' takes '0' arguments
Nimam pa ideje kaj bi lahko dal za arguments.
Glavni program:
namespace Example.csproj { public partial class SolidWorksMacro { public Form1 RWindow = new Form1(); public Form2 BWindow = new Form2(); public void Main() { BWindow.ShowDialog(); } public void PS() { MessageBox.Show("WORKING"); } /// <summary> /// The SldWorks swApp variable is pre-assigned for you. /// </summary> public SldWorks swApp; } }
Form2:
namespace Example.csproj { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form1 frm = new Form1(); frm.Show(); this.Close(); } } }
Form1:
namespace Example.csproj { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //SolidWorksMacro sw = new SolidWorksMacro(); //sw.PS(); //Če poskušam metodo PS klicati tako dobim error: No overload for method 'SolidWorksMacro' takes '0' arguments C:\Users\Desktop\MACRO-JI\C#\Example_mod\SwMacro\Form1.cs 24 34 Example this.Close(); } } }
Prosim za pomoč
- spremenilo: Poldek1 ()
Frajtonar ::
Kako pa to naredim.
Sem poskusil tako:
Samo potem dobim error: Error 1 Identifier expected
Sem poskusil tako:
namespace Example.csproj { public partial class Form1 : Form { public Form1(SolidWorksMacro) { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { SolidWorksMacro sw = new SolidWorksMacro(); sw.PS(); this.Close(); } } }
Samo potem dobim error: Error 1 Identifier expected
klemen93 ::
Glavni program:
Form2:
Form1:
namespace Example.csproj { public partial class SolidWorksMacro { public Form1 RWindow = new Form1(sw); public Form2 BWindow = new Form2(sw); public void Main() { BWindow.ShowDialog(); } public void PS() { MessageBox.Show("WORKING"); } /// <summary> /// The SldWorks swApp variable is pre-assigned for you. /// </summary> public SldWorks swApp; } }
Form2:
namespace Example.csproj { public partial class Form2 : Form { public Form2(SolidWorksMacro sw) { InitializeComponent(); this.sw = sw; } SolidWorksMacro sw; private void button1_Click(object sender, EventArgs e) { Form1 frm = new Form1(sw); frm.Show(); this.Close(); } } }
Form1:
namespace Example.csproj { public partial class Form1 : Form { public Form1(SolidWorksMacro sw) { InitializeComponent(); this.sw = sw; } SolidWorksMacro sw; private void button1_Click(object sender, EventArgs e) { sw.PS(); this.Close(); } } }
Zgodovina sprememb…
- spremenil: klemen93 ()
Frajtonar ::
Zdej pa dobim te dve napaki:
Error 1 The name 'sw' does not exist in the current context C:\Users\Desktop\MACRO-JI\C#\Example_mod\SwMacro\SolidWorksMacro.cs 13 42 Example
Error 2 The name 'sw' does not exist in the current context C:\Users\Desktop\MACRO-JI\C#\Example_mod\SwMacro\SolidWorksMacro.cs 14 42 Example
Error 1 The name 'sw' does not exist in the current context C:\Users\Desktop\MACRO-JI\C#\Example_mod\SwMacro\SolidWorksMacro.cs 13 42 Example
Error 2 The name 'sw' does not exist in the current context C:\Users\Desktop\MACRO-JI\C#\Example_mod\SwMacro\SolidWorksMacro.cs 14 42 Example
klemen93 ::
V glavnem programu moraš nekje deklerirat SolidWorksMacro sw, tega ti nisem dodal ker ne vem kaj sprejema kot parameter.
Frajtonar ::
Najprej hvala za pomoč, ki si mi jo dal do sedaj. Upam, da bom čim preje rešil ta problem.
Vendar sem sedaj še bolj zmeden kaj moram narediti.
SolidWorksMacro je samo ime razreda.
Kako pa naj vem kaj sprejema kot parameter.
Vendar sem sedaj še bolj zmeden kaj moram narediti.
SolidWorksMacro je samo ime razreda.
Kako pa naj vem kaj sprejema kot parameter.
darkkk ::
Tko na približno (ker ne vem kaj ta solidworks dela, ampak vseeno):
Torej narediš form2, in ko na formi2 klikneš gumb btnForm2 se ti zgenerira nov objekt tipa forma1, ki dobi noter referenco na solidworkov neki in ima gumb. Ko na formi1 stisneš gumb se ti izvede metoda button1_Click, ki kliče ugibam solidworksov parsescript :P
(ps. konceptualno verjetno hočeš zamenjat vlogi forme1 in 2 ampak ne bom ugibal)
class Form1:Form{ private SolidWorks sw; Form1(SolidWorks sw){ InitializeComponents(); this.sw = sw; //referenco na SW v Form1 } private button1_Click(...){ this.sw.PS(); //klices metodo PS() na lastni spremenljivki forme1 } } class Form2:Form { Form2(){InitializeComponenets();} private btnForm2_Click(...){ Form1 f = new Form1(sw); //od kje ta sw prileti nimam pojma!!! f.Show() //se boljse f.ShowDialog(), verjetno; } }
Torej narediš form2, in ko na formi2 klikneš gumb btnForm2 se ti zgenerira nov objekt tipa forma1, ki dobi noter referenco na solidworkov neki in ima gumb. Ko na formi1 stisneš gumb se ti izvede metoda button1_Click, ki kliče ugibam solidworksov parsescript :P
(ps. konceptualno verjetno hočeš zamenjat vlogi forme1 in 2 ampak ne bom ugibal)
Frajtonar ::
namespace Example.csproj { public partial class SolidWorksMacro { public Form1 RWindow = new Form1(sw); public Form2 BWindow = new Form2(); public void Main() { BWindow.ShowDialog(); } public void PS() { MessageBox.Show("WORKING"); } /// <summary> /// The SldWorks swApp variable is pre-assigned for you. /// </summary> public SldWorks swApp; } }
namespace Example.csproj { public partial class Form2 : Form { public Form2() { InitializeComponent(); } SolidWorksMacro sw; private void button1_Click(object sender, EventArgs e) { Form1 f = new Form1(sw); // jaz tudi nebi vedel od kje je sw :-) f.Show(); this.Close(); } } }
namespace Example.csproj { public partial class Form1 : Form { private SolidWorksMacro sw; public Form1(SolidWorksMacro sw) { InitializeComponent(); this.sw = sw; } private void button1_Click(object sender, EventArgs e) { this.sw.PS(); this.Close(); } } }
Če naredim sedaj tako dobim error: The name 'sw' does not exist in the current context C:\Users\David\Desktop\MACRO-JI\C#\Example_mod\SwMacro\SolidWorksMacro.cs 15 42 Example
Ta SolidWorksMacro ubistvu zdej še nč ne dela. Jaz bi za začetek samo rad da z form2 odprem form1. Z form1 bi pa rad odprl metodo v glavnem programu. Ko bo to delalo bom pa začel šele zares programirati.
vorantz ::
zakaj bi sploh mel metodo v začetnem classu ki jo kličeš iz PM?
se greš brezveze nek inception tle
pomagaj si z objektnim programiranjem al pa nek statičn class...odvisno kaj hočeš ustvarit
se greš brezveze nek inception tle
pomagaj si z objektnim programiranjem al pa nek statičn class...odvisno kaj hočeš ustvarit
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# težavaOddelek: Programiranje | 3755 (2601) | mladec |
» | C#, TextBox in PopUp formaOddelek: Programiranje | 1110 (1004) | MarCar |
» | C# textbox polnjenjeOddelek: Programiranje | 1632 (1497) | Mitja Bonča |
» | C# iz form2 v form1,textboxiOddelek: Programiranje | 1951 (1577) | Keki |
» | C# PomočOddelek: Programiranje | 1411 (1236) | jizzer |