доступ к полю невозможен, хотя публично и определено в конструкторе - PullRequest
0 голосов
/ 09 апреля 2019

Привет, я пытаюсь ссылаться между формами. Я получил его код ...

main.cs

namespace GDISClient
{
    public class Program : ApplicationContext
    {
        public Form_main mainForm = null;

        public static int startvar = 0;

        private static void Main(string[] args)
        {
            var splash = new Splashscreen(new Form_main());
            Application.Run(splash);
        }
        public Program(Form_main mainForm)
        {
            this.mainForm = mainForm;

        }
    }
} 

и

splashcreen (form)

namespace GDISClient
{
    public partial class Splashscreen : Form
    {
        public Form_main mainForm;

        public Splashscreen(Form_main mainForm)
        {
            this.mainForm = mainForm;
        }

        private System.ComponentModel.IContainer components = null;

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        private pwencode encoder = new pwencode();
        private dbcon mysqlcon = new dbcon(mainForm); // <- this here wont work because he can not reference to that, why ?
    }
}

Я пытался сослаться на new dbcon(mainForm), и это mainform недоступно, но оно общедоступно, и я перенес это в конструктор, что мне делать?

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Согласно моему пониманию вашего вопроса. Проблема здесь:

public Form_main mainForm;  // Declared but not Initialized 
private dbcon mysqlcon = new dbcon(mainForm);  // using a variable that has not been initialized

Решение: Заменить constructor из Splashscreen на constructor:

public Splashscreen(Form_main mainForm)
{
    this.mainForm = mainForm;
    private dbcon mysqlcon = new dbcon(mainForm);
}
1 голос
/ 09 апреля 2019

Ваш mainForm еще не инициализирован. Создайте dbcon в конструкторе и передайте туда ссылку mainForm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...