【发布时间】:2017-07-19 09:30:34
【问题描述】:
我正在尝试制作一个音板程序,当按下播放按钮或按下可选设置的热键时播放用户添加的声音。我想在列表视图中的声音名称旁边显示热键。但我不知道如何添加/编辑仅包含所选行索引的子项。
我见过人们这样做:
ListViewItem lvi = new ListViewItem();
lvi.SubItems.Add("SubItem");
listView1.Items.Add(lvi);
但这没有帮助,因为我无法为每一行创建不同的变量(我认为),因为它是由用户输入的。
这是我希望得到的结果:
这就是我到目前为止所得到的:
编辑:我已经弄清楚如何添加项目:
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);
}
}
但我仍然不确定稍后在程序运行时如何在所选行上添加/编辑热键。
【问题讨论】:
-
嗨,也许这可以帮助你stackoverflow.com/questions/471859/…
-
DataGridView 更容易使用恕我直言(也没有数据库源)
-
@hammerthea 我试过这个:
try { LSTDEDUCTION.SelectedItems[0].SubItems[1].Text = txtcarName.Text; LSTDEDUCTION.SelectedItems[0].SubItems[0].Text = txtcarBrand.Text; LSTDEDUCTION.SelectedItems[0].SubItems[2].Text = txtCarName.Text; } catch{}但它不起作用。如果我删除 try-catch 我会得到System.ArgumentOutOfRangeException: 'InvalidArgument=Value of '0' is not valid for 'index'.' -
你总是应该测试你想要访问的索引。如果它不存在,请添加它。不要滥用 try/catch 来进行您期望失败的“碰撞测试”! - 为什么你认为你不能写
..Subitems.Add(textbox.Text)??? -
@Taw 我已经编辑了帖子