2015-04-21 58 views
-2

假設我有這個代碼。如何將smallGroups傳遞給UpdatePlayer表單。我需要能夠將生成的數據帶到var列表中,並在UpdatePlayer中使用它來填充combobox如何將var列表傳遞給另一個winform

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

上面的代碼有什麼問題?您是否沒有UpdatePlayer中的屬性來存儲smallGroups?然後在加載期間將該屬性設置爲組合框的數據源? –

回答

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

知道「變種」最重要的是,它不是一個變量類型。它的類型是在編譯時靜態確定的。

var smallGroups = new List<GroupsPlayers>(); 

相同

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

這意味着你的UpdatePlayer形式必須採取一個列表或者它的子類在它的構造函數的參數。例如,它可以改用IList。 'var'只是爲了節省打字輸入,或者使重構更清晰。