Как получить доступ от пользовательского элемента управления к его дочерней форме? - PullRequest
0 голосов
/ 02 октября 2019

У меня есть дочерняя форма, которая отображается с кнопкой в ​​пользовательском элементе управления, и я хочу клонировать ListView в пользовательском элементе управления в его дочернюю форму.

Я проверил с точкой останова и распечатал список, но он выдает мне ошибку, как за пределами или переменная экземпляра равна нулю.

public partial class JobForm: Form
{
    public Job()
    {
        InitializeComponent();
    }
    List<string> joblist = new List<string>();
    public List<string> _var
    {

        set {

            joblist = value; }
    }

}

Пользовательский контроль

private void button_Click(object sender, EventArgs e)
{
    //MessageBox.Show(_var[0].ToString());      
    JobForm jb = new JobForm();
    jb.Show();
}
public List<string> listViewJob()
{
    _var.Add(item);
    return _var;
}
public List<string> _var { get;} = new List<string>();

Iиспользуется также 'var parent = this.Parent as JobForm;parent.ID2 = ID2;но это дает мне ту же ошибку. Таким образом, я проверяю с точкой останова, что это правильный список, пока форма не покажет, тогда я получаю значение NULL или выходит за пределы (_var) в пользовательском управлении и в форме. Буду признателен, если вы напишите пример.

1 Ответ

0 голосов
/ 02 октября 2019

Очень запутанно, что и JobForm, и пользовательский элемент управления имеют список с именем _var. Лучше использовать более описательные имена переменных.

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

Дляэкземпляр:

private void button_Click(object sender, EventArgs e)
{
    //MessageBox.Show(_var[0].ToString());      
    JobForm jb = new JobForm();

    // Members of 'jb' are available here
    this._var = jb._var;

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