C#ListBox,显示多列

时间:2018-09-17 14:48:14

标签: c# winforms visual-studio-2017

我目前有两个列表框。一个绑定到游戏的SQL表。该表由game_IDNameType组成。我的列表框的显示成员和值成员设置为Name。我希望能够选择一个游戏并将所选项目移至第二个ListBox并显示Name。那部分工作正常。我遇到的问题是,当将其插入到另一个SQL表中时,我希望它仅插入Game_ID(以及另一个顺序ID),而不插入Name

期望的结果是仅在第二个ListBox中显示游戏名称,但仍然可以使用game_id。如果需要,我可以在两个列表框中同时显示game_idName

enter image description here enter image description here

顶部列表框是对游戏表的简单选择查询,以下代码用于将项目移至底部列表框:

if (lstGames.Items.Count > 0)
        {
            lstSelGames.Items.Add(lstGames.SelectedValue);
        }

并从列表框中删除:

if (lstSelGames.Items.Count > 0)
        {
            lstSelGames.Items.Remove(lstSelGames.SelectedItem);
        }

1 个答案:

答案 0 :(得分:1)

您可以创建一个具有IdName属性的简单类,并将该类的实例添加到第二个ListBox,同时将ListBox.DisplayMember设置为Name,与第一个ListBox中的方法相同。

public class Game
{
    public int Id { get; set; }
    public string Name { get; set; }
}

添加这样的项目:

listBox.Items.Add( new Game(){ Id = 1, Name = "Some name" } );

然后检索:

var game = (Game)listBox.Items[0];