passing mainform instance
-
Declare a constructor for the frmToolBox that takes an instance of the main form
public FormToolBox(FormMain formMain)
and then create an instance of the tool box form as follows
frmToolbox = new frmToolbox(this);
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook
Thanks for replying however this isn't the problem, I've thought that myself. The problem is:
Stefan Troschtz wrote:
frmToolbox = new frmToolbox(this);
This does NOT work as I experienced yesterday. I can't pass the MainForm around in the MainForm code using 'this' :( Problem not solved :sigh:
-
Thanks for replying however this isn't the problem, I've thought that myself. The problem is:
Stefan Troschtz wrote:
frmToolbox = new frmToolbox(this);
This does NOT work as I experienced yesterday. I can't pass the MainForm around in the MainForm code using 'this' :( Problem not solved :sigh:
I do not get your problem. What exactly do you mean by "does not work"? Where exactly are you creating the frmToolBox instance?
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook
-
Thanks for replying however this isn't the problem, I've thought that myself. The problem is:
Stefan Troschtz wrote:
frmToolbox = new frmToolbox(this);
This does NOT work as I experienced yesterday. I can't pass the MainForm around in the MainForm code using 'this' :( Problem not solved :sigh:
-
Thanks for replying however this isn't the problem, I've thought that myself. The problem is:
Stefan Troschtz wrote:
frmToolbox = new frmToolbox(this);
This does NOT work as I experienced yesterday. I can't pass the MainForm around in the MainForm code using 'this' :( Problem not solved :sigh:
Perhaps you need to do better at asking questions. If you're inside your mainform, and not inside a static function, this will work. There Application object also has a collection of open forms, which you can also iterate through and look for your mainform. But, when someone tells you how to do something,
motojojo wrote:
This does NOT work
is useless. Tell us WHY it won't work, what the error is, and then we can perhaps tell you what's going on, without having to guess. Odds are high it's in a static function, and if you bothered to read the error message, you'd understand why it's not working.
Christian Graus - Microsoft MVP - C++ Metal Musings - Rex and my new metal blog "I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
-
Hello, Am I wrong, or are you trying to use "this" in the "static void Main"? This will not work, you have to do it in the Mainforms cunstructor. All the best, Martin
You are right, I didn't initialize that object in the constructor Now that I did, indeed it takes 'this' as a reference, however all of my other methods are souped up since now toolbox doesn't exist enymore as a class parameter. --> The name 'toolbox' does not exist in the current context. Stuck again. I'm just stupid I guess.. Sigh :)
-
You are right, I didn't initialize that object in the constructor Now that I did, indeed it takes 'this' as a reference, however all of my other methods are souped up since now toolbox doesn't exist enymore as a class parameter. --> The name 'toolbox' does not exist in the current context. Stuck again. I'm just stupid I guess.. Sigh :)
Hello,
motojojo wrote:
I'm just stupid I guess..
Give yourselfe a little more time.
motojojo wrote:
I didn't initialize that object in the constructor
Ok, good so far!
motojojo wrote:
Now that I did, indeed it takes 'this' as a reference, however all of my other methods are souped up since now toolbox doesn't exist enymore as a class parameter.
The "trick" is that you declare the variable outside the constructor and initialze inside.
private SomeClass mySomeClass;
public MainClass()
{
InitializeComponets();
mySomeClass = new SomeClass(this);
}Hope it helps! All the best, Martin
-
Hello,
motojojo wrote:
I'm just stupid I guess..
Give yourselfe a little more time.
motojojo wrote:
I didn't initialize that object in the constructor
Ok, good so far!
motojojo wrote:
Now that I did, indeed it takes 'this' as a reference, however all of my other methods are souped up since now toolbox doesn't exist enymore as a class parameter.
The "trick" is that you declare the variable outside the constructor and initialze inside.
private SomeClass mySomeClass;
public MainClass()
{
InitializeComponets();
mySomeClass = new SomeClass(this);
}Hope it helps! All the best, Martin
Martin# wrote:
private SomeClass mySomeClass;public MainClass(){ InitializeComponets(); mySomeClass = new SomeClass(this);}
I've added another constructor to my Toolbox which takes no parameter so now I have Toolbox(Mainform mainform){ ... } and Toolbox(){} however, this results in an infinite loop...
-
Martin# wrote:
private SomeClass mySomeClass;public MainClass(){ InitializeComponets(); mySomeClass = new SomeClass(this);}
I've added another constructor to my Toolbox which takes no parameter so now I have Toolbox(Mainform mainform){ ... } and Toolbox(){} however, this results in an infinite loop...
-
Martin# wrote:
private SomeClass mySomeClass;public MainClass(){ InitializeComponets(); mySomeClass = new SomeClass(this);}
I've added another constructor to my Toolbox which takes no parameter so now I have Toolbox(Mainform mainform){ ... } and Toolbox(){} however, this results in an infinite loop...
I think, you need to show us some more code, cause otherwise otherwise there is too much guessing in helping you. What are you doing inside the constructors? Where exactly are creating the mainform and toolbox instances? Finally, nevertheless a guess. Probably you're creating a new instance of the main form inside the tool box constructor. That is not necessary. Simply assign the instance passed in to the declared field.
class ToolBox
{
private MainForm mainForm;public ToolBox(MainForm mainForm)
{
this.mainForm = mainForm;
..
}
}
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook