Thanks everybody for the answers.
Joe:
The code I post is a "simplification" of what I have really. Really I
have like more than 50 boolean variables that I would like to share
between forms. They are all states of checkboxes in a form.
So the real code would be:
public struct Seleccion { public bool x; public bool y; public bool
z; etc } (like this 50 variables more)
So defining more than 50 class properties would be very long. That's
why I decided (maybe wrongly) to encapsulate all of them in an
structure.
Also defining a method for each variable would be very long.
Trying to find a solution, I tried to access the structure directly
from another forms, forgetting about the properties I defined and it
WORKED. I did it like this:
Program.sel_activa.x = B02.Checked;
So I could even define separate 50 boolean variables and access them
directly instead of an structure.
Is there something wrong with this approach?
I want to put clear that I'm just starting to learn object oriented
programming (I program in VB in a structured programming fashion only)
and that's why I'm asking this basic questions. Is there any advantage
in making them visible through properties?
I want to make this in the more suited "Object Oriented" way even if
it's long, but I just would like to know which advantages gives me all
the code I would have to type.
Nikhil:
What advantages would I have if I define it in a separate class? and
is there any consideration I have to take into account to make those
new class variables visible to all forms and classes?
Thanks in advance,
Regards!
Nacho
On Feb 18, 6:42 pm, nikhil gaitonde <[email protected]> wrote:
> Hi Nacho,
>
> Better don't use Program.cs to declare the property.
> Instead declare another static class just to declare variables across the
> application.
> Something like a Statemanager.cs
> Just let me know if this helps.
>
> Regards,
> Nikhil
>
> On Wed, Feb 18, 2009 at 9:36 PM, Nacho108 <[email protected]> wrote:
>
> > Hi everyone,
> > I'm trying to create an structure so it can be seen from all forms. So
> > doing a bit of research I decided to create an static property of the
> > main class of the program.
>
> > For this I've made this code:
>
> > namespace WindowsApplication1
> > {
> > static class Program
> > {
> > public struct Seleccion
> > { public bool x;
> > public bool y; }
>
> > private static Seleccion sel_activa ;
>
> > public static Seleccion _sel_activa
> > { get { return Program.sel_activa;}
> > set { Program.sel_activa =value; } }
>
> > static void Main()
> > { Program.sel_activa = new Seleccion();
> > Application.EnableVisualStyles();
> > Application.SetCompatibleTextRenderingDefault(false);
> > Application.Run(new Form1()); }
> > } }
>
> > and after doing this I try to access the property from one form like
> > this:
>
> > Program._sel_activa.x = B02.Checked; (B02 is a check box)
>
> > and VS throw me an exception:
> > "Cannot modify the return value of
> > 'WindowsApplication1.Program._sel_activa' because it is not a
> > variable"
>
> > Can somebody help with this?
>
> > By the way this is the link of the article I've taken from the
> > information.
>
> >http://bytes.com/groups/net-c/263680-accessing-same-data-multiple-for...
>
> > Thanks in advance!