winforms 在窗体之间传递列表

sqougxex  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(160)

我在我的主窗体中创建了一个列表,我想传递给我的其他窗体。

public class MainZoo : Form
    {
        public List <Animal> animal;
        public MainZoo(List<Animal> animal)
        {
            
            InitializeComponent();
            var newAnimal = animal;

        }

这是我的主要形式,从那里我将打开其余的形式。我想我可以使用该变量将列表传递给其他表单,当我打开它们时。似乎在我的思考过程中有一个问题,因为我不能从主窗体“到达”那个列表(其他窗体是从窗体继承来的,而不是MainZoo)。我在想“搞定”,但怎么做呢?刚看到它,但我不知道我应该如何通过该名单使用的东西。

private void LandAnimalButton_Click(object sender, EventArgs e)
        { 
            Form Land = new LandAnimalFormcs();
            Land.ShowDialog();
            var newAnimal = animal;
        }

此代码仍在主窗体中。

woobm2wo

woobm2wo1#

就像戴建议的那样最好将列表定义为要将列表传递到的窗体的属性。可以使用下面的代码声明一个属性,该属性接受List并从当前窗体返回相同的List。

public class MyForm : Form {
//declare the field to hold the list data in the form
private List<string> _list;
//define the list as a property
public List <string> MyList{
    get{ return _list;}
    set{_list = value;}
  }
}

然后在你的另一个表单中,你有一个列表,你试图传递给另一个表单,如下所示。

var list = new List<string>();
var form = new MyForm();
form.MyList = list;

相关问题