移动从keyvaluepair列表中填充的列表框中的项目

时间:2014-03-31 22:30:16

标签: c# winforms listbox

我有一个整数列表.5个项目最大。这5个整数显示列表框项目的5个索引。我想在此列表框的前5个位置移动此项目。此列表框从此列表中填充此代码< / p>

 uList.Add(new KeyValuePair<int, string>(item.Id, item.Name));
 listBoxHome.DataSource = uList;
 listBoxHome.DisplayMember = "Value";
 listBoxHome.ValueMember = "Key";

indices是整数列表,指的是项目索引。

 game.listBoxHome.BeginUpdate();

        for (int i = 0; i < 5; i++)
        {
            foreach (int PlayingInd in indexes)
            {
                HomeList.Insert(i, HomeList[PlayingInd]);
                HomeList.RemoveAt(PlayingInd);

            }
        }
        game.listBoxHome.DataSource = HomeList;
        game.listBoxHome.DisplayMember = "Value";
        game.listBoxHome.ValueMember = "Key";
        game.listBoxHome.EndUpdate();

我将此代码用于一种形式:

  public void button7_Click(object sender, EventArgs e)
    {      
  Sub sub = new Sub();   
  foreach (ListItem item in listBox2.Items)
                {
                    uList.Add(new KeyValuePair<int, string>(item.Id, item.Name));

                }
                sub.HomeList = uList;
  }

另一种形式:

    private BindingList<KeyValuePair<int, string>> Homelist;
    public BindingList<KeyValuePair<int, string>> GetHomelist
    {
        get { return Homelist; }
        set { Homelist = value; }            
    }        
    private void button2_Click(object sender, EventArgs e)
    {
            BindingList<int> indexes = new BindingList<int>();
            foreach (int indexChecked in checkedListBox1.CheckedIndices)
            {
                indexes.Add(indexChecked);
            }
            Game game = new Game();


            foreach (int PlayingInd in indexes)
            {
                Homelist.Insert(0, Homelist[PlayingInd]);
                Homelist.RemoveAt(PlayingInd + 1);
                }
            game.GetHomelist = Homelist;

            this.Close();
        }

解决

0 个答案:

没有答案