Access Form Controls From Another Class?

  • Thread starter Thread starter Michael Ramey
  • Start date Start date
M

Michael Ramey

How can controls on a Windows Form be accessed (or referenced) from another
Class? I know how to do it from another Form. The following doesn't work
even though the Control Modifiers property is set to "Public":

frmMain.myControl

Thanks.

Michael
 
Hi Michael,
What does *doesn't work* mean? Is there some compiler error message? It has
to work as long as the myControl is public. I suppose frmMain is the member
variable of the *other* class and it is initilized with the reference to the
form.
Make sure as well that the frmMain's type is the type that has myControl
field.

for example:
class MyForm: Form
{
public Control myControl = .....
}

if you have

Form frmMain = <reference to MyForm object>
and you try

frmMain.myConrtrol.....

it won't work because Form class doesn't have myControl member variable.

However, if you have

MyForm frmMain = <reference to MyForm object>

frmMain.myControl....

has to work.

HTH
B\rgds
100
 
The compiler error message is:

An object reference is required for the nonstatic field, method, or
property.

The following code allowed me to access the control:

frmMain frmActive = (frmMain)frmMain.ActiveForm;
frmActive.myControl...

Is there a better way?

Thanks.

Michael
 
The confusion lies in your naming convention.

Since frmMain uses camel notation, a C# developer using MS's conventions
will naturally assume that it's a member/local variable.

Anyways, you need to pass a reference to the form to the object that you
want to access its control.

public class MyControlAccessor
{
public MyControlAccessor(frmMain mainForm)
{
mainForm.myControl.....
}
}
 
Back
Top