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!

Reply via email to