如何将var列表传递给另一个winform

时间:2015-04-21 19:10:27

标签: c# winforms

假设我有这段代码。如何将smallGroups传递给UpdatePlayer表单。我需要能够将生成的数据带到var列表中,并在UpdatePlayer中使用它来填充combobox

public class GroupsPlayers
{
    public string GroupID;
    public string GroupName;
}

public void Groups() {
    var smallGroups = new List<GroupsPlayers>();


    while(rd.Read())
    {
        var currentPlayer = new GroupsPlayers() {

        };

        smallGroups.Add(currentPlayer);
    }


    MessageBoxResult userResponse = MessageBox.Show(msgBoxMsg, "Groups Manager", MessageBoxButtons.YesNo);

    if(userResponse == DialogResult.Yes)
    {
        UpdatePlayer frmPlayers = new UpdatePlayer(this, smallGroups);
    }
}

2 个答案:

答案 0 :(得分:2)

如果您可以使用第二种形式访问GroupsPlayers类型(您将其公开,那么),您只需要通过适当的构造函数传递此集合。检查下面的代码,我觉得它很简单。如果您有任何疑问 - 请发表评论。

在第二种形式中创建构造函数:

public class UpdatePlayer : Form
{
    List<GroupsPlayers> _GroupPlayers;
    UpdatePlayer (List<GroupsPlayers> GroupPlayers)
    {
        _GroupPlayers = GroupPlayers; // here You are "Catching" the value You have passed in first form and assigning it to _GroupPlayers property
    }
}

以第一种形式:

UpdatePlayer secondForm = new UpdatePlayer (smallGroups);

答案 1 :(得分:0)

了解'var'的重要一点是它不是变量类型。它的类型是在编译时静态确定的。

var smallGroups = new List<GroupsPlayers>();

相同
List<GroupsPlayers> smallGroups = new List<GroupsPlayers>();

这意味着您的UpdatePlayer表单必须将其List或其子类作为其构造函数中的参数。例如,它可以使用IList。 'var'就是为了保存打字的类型,或者使重构更清晰。