473,659 Members | 2,662 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

C# main class access

How do you access properties of the main program's class from another form? There does not apear to be an instance variable that can be used.

Nov 16 '05 #1
3 17903
Hi Ray,

"Ray Stevens" <Ra********@dis cussions.micros oft.com> wrote in message
news:DF******** *************** ***********@mic rosoft.com...
How do you access properties of the main program's class from another
form? There does not apear to be an instance variable that can be used.


A) Pass a reference to your main form when creating others.
B) Implement an public application singleton, containing the base logic -
which
may include a Collection of all the created forms - then you can access
the
singleton's collection of forms whenever you feel like doing form2form
communication ;-)

--
Lars Wilhelmsen
http://www.sral.org/
Software Engineer
Teleplan A/S, Norway
Nov 16 '05 #2
That means the functions that are opening the new forms are static methods
of the main form instead of instance methods. Is this on purpose, and, if
so, is there a reason they need to be this way?

Regardless, here's a pretty simple way of doing this. In you main form,
create a public static variable and use it for the call to
Application.Run (), e.g.

class MainForm : System.Windows. Forms.Form
{
public static MainForm TheMainForm = null;

public static void Main()
{
TheMainForm = new MainForm();
Application.Run (TheMainForm);
}
}

Now in any other form, if you need to reference the main form, do this:

class SomeOtherForm : System.Windows. Forms.Form
{
public SomeMethod()
{
string s = MainForm.TheMai nForm.GetValueO fSomeTextBox();
}
}
Ken

"Ray Stevens" <Ra********@dis cussions.micros oft.com> wrote in message
news:58******** *************** ***********@mic rosoft.com...
Passing a reference to the main form does not work. The compiler give an error "can't reference 'this'". I still can not find the instance variable
for the main form.
"Lars Wilhelmsen" wrote:
Hi Ray,

"Ray Stevens" <Ra********@dis cussions.micros oft.com> wrote in message
news:DF******** *************** ***********@mic rosoft.com...
How do you access properties of the main program's class from another
form? There does not apear to be an instance variable that can be used.


A) Pass a reference to your main form when creating others.
B) Implement an public application singleton, containing the base logic - which
may include a Collection of all the created forms - then you can access the
singleton's collection of forms whenever you feel like doing form2form communication ;-)

--
Lars Wilhelmsen
http://www.sral.org/
Software Engineer
Teleplan A/S, Norway

Nov 16 '05 #3
Hi Ken,

To answer your question: I don't know other than that is what VS.NET 2003 produced.

What you showed me worked. Thank you.

Ray Stevens

"Ken Kolda" wrote:
That means the functions that are opening the new forms are static methods
of the main form instead of instance methods. Is this on purpose, and, if
so, is there a reason they need to be this way?

Regardless, here's a pretty simple way of doing this. In you main form,
create a public static variable and use it for the call to
Application.Run (), e.g.

class MainForm : System.Windows. Forms.Form
{
public static MainForm TheMainForm = null;

public static void Main()
{
TheMainForm = new MainForm();
Application.Run (TheMainForm);
}
}

Now in any other form, if you need to reference the main form, do this:

class SomeOtherForm : System.Windows. Forms.Form
{
public SomeMethod()
{
string s = MainForm.TheMai nForm.GetValueO fSomeTextBox();
}
}
Ken

"Ray Stevens" <Ra********@dis cussions.micros oft.com> wrote in message
news:58******** *************** ***********@mic rosoft.com...
Passing a reference to the main form does not work. The compiler give an

error "can't reference 'this'". I still can not find the instance variable
for the main form.

"Lars Wilhelmsen" wrote:
Hi Ray,

"Ray Stevens" <Ra********@dis cussions.micros oft.com> wrote in message
news:DF******** *************** ***********@mic rosoft.com...
> How do you access properties of the main program's class from another
> form? There does not apear to be an instance variable that can be used. >

A) Pass a reference to your main form when creating others.
B) Implement an public application singleton, containing the base logic - which
may include a Collection of all the created forms - then you can access the
singleton's collection of forms whenever you feel like doing form2form communication ;-)

--
Lars Wilhelmsen
http://www.sral.org/
Software Engineer
Teleplan A/S, Norway


Nov 16 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
7606
by: Alan.J.Thackray | last post by:
I am new to Java. Since the "main" class has the main() function it it, is this called before the constructor, or is a constructor totally irrelevant for a main class, since you never "new" it ? I am used to C++ whare main exists outside any class. I have a test "main" class and it appears the constructor is never called ?
2
3544
by: Dan Disney | last post by:
I have read conflicting information on the access scope of VB.Net class declarations when no access modifier is specified. MSDN library documentation states "Classes that do not specify an access modifier are declared as Friend by default" However, another source, VB.Net Class Design Handbook by Wrox Press states that no a "no class access modifier results in an implicit scope of public to all assemblies". In fact, if I create a class...
3
1742
by: kchalla | last post by:
Can anybody let me know the difference between public and private class access modifiers? Thanks in advance
8
4671
by: Stanislav Simicek | last post by:
Hello, I've several C++ classes that must be ported to C#. Is there any construction in C# similar to C++: class A : protected B { ... }
2
1810
by: cdg | last post by:
Is there any way to directly access variables of one class from another class without passing any public member variables. Similar to how any function in a class can directly access (without passing an argument) any member variable of its' own class. I thought the only way this could be possible would be to make a function a "friend" of the class. But I now beleive that it is still necessary to pass variables to the other class, is this...
0
1499
by: Nunez | last post by:
Hello, I need some DETAILED help. I'm trying to download a java game off the internet but an error window pops up which says "Java Virtual Machine, Fail to load Main-Class manifest attribute from C:\Documents and Settings........jar". I downloaded "J2SE Runtime Enviroment 5.0 Update 6" and tested it and it works but I still can't download the game. What should I do?
1
2202
by: Bface | last post by:
Hi All, I am stuck on a problem and hope someone can help me out. I have 8 users who will be using a form . For the users to access their accounts I use the SendKeys function, the user click on their name to access their records. Each user has over 300 accounts and it is a growing list. On my main form whose record source is a query based on , I have a button on the main form which open a pop up form , the source for this form is a query...
1
2758
by: trdmrk | last post by:
Hello, Ive found this site very helpful in the past, so i thought i may ask for help. I am developing an application for a school project. I am in the middle of it, I get the error: java.lang.ExceptionInInitializerError Caused by: java.lang.NullPointerException at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:991) at java.lang.Double.parseDouble(Double.java:510) at...
3
3508
by: miss peaches | last post by:
I am currently enrolled in a Java Programming Class in which we were asked to create a Class to store and retrieve an employee's name, hourly rate, and hours worked. Use constructors to initialize employee info and a method within the Class to calculate weekly pay. Once "Stop" is entered as employee name, the application should terminate. I have attached for you the code I wrote. Let me know if you need any additional info from me. Thanks for...
0
8427
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8330
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8850
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
8523
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
7355
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6178
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4175
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4334
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
1737
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.