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



假设我有这段代码。如何将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);
    }
}

如果 GroupsPlayer Type 可以在您的第二种形式中访问(您将其公开,因此它是公开的),则您只需要通过正确的构造函数传递此集合。检查下面的代码,我认为它很简单。如果您有任何问题 - 在评论中提问。

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

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);

关于"var",要知道的重要一点是它不是一个变量类型。它的类型是在编译时静态确定的。

var smallGroups = new List<GroupsPlayers>();

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

这意味着您的 UpdatePlayer 窗体必须将它的 List 或子类作为其构造函数中的参数。例如,它可以改用 IList。"var"只是为了保存类型以进行延迟,或者使重构更清晰。

最新更新