I'm having a hard time understanding referencing and calls. If a form already exists, how can I call a method from it without using re-creating the form? (Using the new operator).
i.e. Menu_View Menu = Menu.SetMenuView();
Currently my scope flows a bit like this:
In the Menu:
    public Menu_View()
    {
        // Initialises the Menu form.
        // Runs the method in the controller to open the Login form.
        InitializeComponent();  
        User_Controller UserController = new User_Controller();              
        UserController.Show_Login(this);
    }
In the Controller:
    public void Show_Login(Menu_View Main_Menu)
    {
        // Creates an object of the User_LoginView.
        // Set the Parent Form of the Child window
        // Display the new form.
        User_LoginView LoginView = new User_LoginView(); 
        LoginView.MdiParent = Main_Menu; 
        LoginView.Show();
    }
In the Login Form:
public partial class User_LoginView : Form
{
    // Opens the form.
    // When the Login Button is clicked, runs checks and comparisons.
    public User_LoginView()
    {
        InitializeComponent();
    }
    public void btnLogin_Click(object sender, EventArgs e)
    {
        User_Controller.Check_Login(this);
    }    
Then back in the Controller:
public static void Compare_Login(User_LoginView LoginView)
    {
        // Compares the returned AccessLevel. 
        // if it is corect; closes the Login and runs the SetMenuView method,
        // if it is incorrect; shows an error.
        if (AccessModel.AccessLevel > 0)
        {
            Console.WriteLine("Access Level " + AccessModel.AccessLevel);
            LoginView.Close();
            Menu_View.accessLevelSet = AccessModel.AccessLevel;
        }
        else
        {
            ErrorCodes_Controller LoginError = new ErrorCodes_Controller();
            LoginError.WrongLoginError();
        }
        // This line gives me an error.
        Menu_View Menu = Menu.SetMenuView();
    }
 
     
    