winform双击ListView某行弹出窗体,关闭弹出窗体返回修改选中行的值
private void lvTags_DoubleClick(object sender, EventArgs e)
{
if (lvTags.Items.Count > 0)
{
TagsEditor myTags = new TagsEditor();
int lvIndex = 0;
foreach (ListViewItem viewItem in this.lvTags.Items)
{
if (viewItem.Selected)
{
myTags.TagName = viewItem.SubItems[0].Text;
lvIndex = viewItem.ListView.SelectedIndices[0];
}
}
if (myTags.ShowDialog() == DialogResult.OK)
{
lvTags.Items[lvIndex].Selected = true;
lvTags.Items[lvIndex].SubItems[1].Text = myTags.StartHtml;
lvTags.Items[lvIndex].SubItems[2].Text = myTags.EndHtml; }
}
}
出现错误提示 InvalidArgument=“1”的值对于“index”无效!!!貌似是返回后没获取到选中行。请大大看看。
------解决方案--------------------
Items[lvIndex].SubItems[1],这里有两个问题,lvIndex是不是越界,SubItems是否越界
------解决方案--------------------设个短点 DEBUG 走一下
------解决方案--------------------你先判断一下有没有修改,如果修改了,就重新加载就行了