如何编辑列表视图中的项目
How to edit items in a listview
我希望能够编辑已添加到我的列表视图中的项目。
列表视图项是通过文本框、日期时间选择器和组合框添加的。
列表视图有三列。我想要的是:当我点击列表视图项时,(列表视图选择所有列)然后点击编辑按钮,然后文本框被替换为第一列,日期时间选择器被替换为第二列的日期,并且组合框替换为第 3 列。
然后我可以编辑文本框、日期或组合框项目,当我单击保存按钮时,列表视图项目就会更新。
由于您想使用单独的编辑控件和按钮进行更新,因此无需使用控件覆盖列表视图子项。
这是从第一个选定项目加载控件并更新 ListView
中的 Item
的示例代码:
private void lv_edit_SelectedIndexChanged(object sender, EventArgs e)
{
if (lv_edit.SelectedIndices.Count > 0)
{
var lvi = lv_edit.SelectedItems[0];
tb_col1.Text = lvi.SubItems[0].Text;
date_col2.Value = Convert.ToDateTime(lvi.SubItems[1].Text);
combo_col3.SelectedIndex = combo_col3.FindStringExact(lvi.SubItems[2].Text);
}
}
private void cb_updateItem_Click(object sender, EventArgs e)
{
if (lv_edit.SelectedIndices.Count > 0)
{
var lvi = lv_edit.SelectedItems[0];
lvi.SubItems[0].Text = tb_col1.Text;
lvi.SubItems[1].Text = date_col2.Value.ToString("dddd, dd. MMMM yyyy");
lvi.SubItems[2].Text = combo_col3.SelectedItem.ToString();
}
}
请注意 SubItems[0].Text
与 Items[0].Text
相同。
另请注意,代码假定所有项目都具有所有三个字段并且它们的值都有效,即转换和查找将起作用。
我希望能够编辑已添加到我的列表视图中的项目。
列表视图项是通过文本框、日期时间选择器和组合框添加的。
列表视图有三列。我想要的是:当我点击列表视图项时,(列表视图选择所有列)然后点击编辑按钮,然后文本框被替换为第一列,日期时间选择器被替换为第二列的日期,并且组合框替换为第 3 列。
然后我可以编辑文本框、日期或组合框项目,当我单击保存按钮时,列表视图项目就会更新。
由于您想使用单独的编辑控件和按钮进行更新,因此无需使用控件覆盖列表视图子项。
这是从第一个选定项目加载控件并更新 ListView
中的 Item
的示例代码:
private void lv_edit_SelectedIndexChanged(object sender, EventArgs e)
{
if (lv_edit.SelectedIndices.Count > 0)
{
var lvi = lv_edit.SelectedItems[0];
tb_col1.Text = lvi.SubItems[0].Text;
date_col2.Value = Convert.ToDateTime(lvi.SubItems[1].Text);
combo_col3.SelectedIndex = combo_col3.FindStringExact(lvi.SubItems[2].Text);
}
}
private void cb_updateItem_Click(object sender, EventArgs e)
{
if (lv_edit.SelectedIndices.Count > 0)
{
var lvi = lv_edit.SelectedItems[0];
lvi.SubItems[0].Text = tb_col1.Text;
lvi.SubItems[1].Text = date_col2.Value.ToString("dddd, dd. MMMM yyyy");
lvi.SubItems[2].Text = combo_col3.SelectedItem.ToString();
}
}
请注意 SubItems[0].Text
与 Items[0].Text
相同。
另请注意,代码假定所有项目都具有所有三个字段并且它们的值都有效,即转换和查找将起作用。