如何将子项添加到listView中的特定行/索引

时间:2017-07-19 09:30:35

标签: c# .net winforms listview

当我按下播放按钮或按下可选设置的热键时,我正在尝试制作一个播放用户添加声音的音板程序。我想在列表视图中显示声音名称旁边的热键。但我不知道如何添加/编辑只包含所选行索引的子项。

我见过人们这样做:

 ListViewItem lvi = new ListViewItem();
 lvi.SubItems.Add("SubItem");
 listView1.Items.Add(lvi);

但它没有帮助,因为我不能为每一行创建一个不同的变量(我认为),因为它是由用户输入的。

这是我希望得到的结果:

enter image description here

这是我到目前为止所得到的:

enter image description here

编辑:我已经找到了如何添加项目:

    private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
    {
        foreach (string fileName in openFileDialog1.FileNames)
        {
            var item = new ListViewItem(fileName);
            item.SubItems.Add("Alt+Shift+Numpad1");
            lvAudio.Items.Add(item);
            listBoxAudio.Items.Add(fileName);
        }
    }

但是我仍然不确定如何在程序运行时在所选行上添加/编辑热键。

1 个答案:

答案 0 :(得分:0)

为了访问项目和子项目,将它们视为集合并使用它们的索引来获取它们:

if (lvAudio.SelectedItems.Count > 0) 
{
      var file = lvAudio.SelectedItems[0];
      if(file.SubItems.Count > 1)
      {
          var shortcut = file.SubItems[1];
          shortcut.Text = "New Shortcut";
      }
}