【问题标题】:How to access list from a child within a child?如何从孩子中的孩子访问列表?
【发布时间】:2020-08-19 04:08:53
【问题描述】:

我正在开发一个程序,让用户将项目添加到列表视图中。然后将这些项目存储在一个列表中,这样我就可以很容易地在启动时使用 StreamReader 加载列表视图。现在,这是我的问题。用户可以在列表视图中选择一个项目,然后单击一个按钮以显示一个窗口,该窗口基本上显示有关用户已选择的项目的更多信息。为了更改,比如说,名称,我想打开另一个窗口,用户可以在其中输入新名称,然后在按下按钮时更改并保存到列表中。

我可以通过使用构造函数将 Form1 的实例发送到 Form2 轻松地从第一个孩子访问列表。但是从 Form2 打开 Form3 时,如何从 Form3 访问 Form1?

我在Form2中使用如下代码访问Form1:

表格1:

private void button1_Click(object sender, System.EventArgs e)
{  
    Form2 form2 = new Form2(this);
    form2.StartPosition = FormStartPosition.CenterParent;
    form2.ShowDialog(this);
}

表格2:

private Form1 _Form1;

public Form2(Form1 _Form1)
{
    this._Form1 = _Form1;
}

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    “当Form3Form2 打开时,我如何从Form3 访问Form1

    好吧,既然Form2 可以访问Form1 的实例,如果Form3 需要它,那么Form2 可以给它。

    一种方法是通过构造函数传递它,就像您之前所做的那样:

    public class Form2
    {
        private Form1 _Form1;
    
        public Form2(Form1 form1)
        {
            this._Form1 = form1;
        }
    
        // Imaginary method that needs to pass Form1 to Form3
        public string GetName()
        {
            // Pass our reference to Form1 to the constructor of Form3
            Form3 form3 = new Form3(this._Form1);
            form3.StartPosition = FormStartPosition.CenterParent;
            form3.ShowDialog(this);
    
            return form3.txtName.Text;
        }
    }
    

    【讨论】:

    • 谢谢!使用 this._Form1 将 _Form1 发送到 Form3 中修复了它。你是救生员!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多