读书人

winform双击ListView某行弹出窗体关

发布时间: 2012-05-29 12:16:00 作者: rapoo

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 走一下
[解决办法]
你先判断一下有没有修改,如果修改了,就重新加载就行了

读书人网 >C#

热点推荐