winform 中listview的selectedindexchanged 问题高人进来看看

lfszyxd 2014-04-25 09:55:54
就是两个页面 第一个用显示分组信息 点击分组信息在selectedindexchanged中写 窗体的showdialog语句 弹出第二个窗体
第二个窗体执行完任务后 删除第一个窗体中当前组的信息 关闭窗口 会自动触发selectedindexchanged 并自动弹出显示下一个分组的窗体 怎么控制下 啊
...全文
374 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
引用 15 楼 Z65443344 的回复:
总之,你用代码修改listview里的东西,就必定导致selectedIndex的改变 而这个过程是可以控制的,你自己清楚什么时候是在对listview进行代码操作,什么时候是留给用户操作的 加个变量区分开来就行了.
没有那么简单啊 你的qq给我
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
引用 15 楼 Z65443344 的回复:
总之,你用代码修改listview里的东西,就必定导致selectedIndex的改变 而这个过程是可以控制的,你自己清楚什么时候是在对listview进行代码操作,什么时候是留给用户操作的 加个变量区分开来就行了.
留个联系方式给我吧
於黾 2014-04-25
  • 打赏
  • 举报
回复
总之,你用代码修改listview里的东西,就必定导致selectedIndex的改变 而这个过程是可以控制的,你自己清楚什么时候是在对listview进行代码操作,什么时候是留给用户操作的 加个变量区分开来就行了.
於黾 2014-04-25
  • 打赏
  • 举报
回复
触发2次,肯定是你在绑定后给selectedIndex赋值了
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
引用 10 楼 Z65443344 的回复:
[quote=引用 7 楼 u013554823 的回复:] [quote=引用 3 楼 Z65443344 的回复:] 应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
不行 因为触发是在绑定后 [/quote] 其实就是你绑定的过程中触发的. 你先定义个变量,让它是false.当你打开第二个窗口的时候,让它变为true 等你绑定完了,再让它变成false[/quote] 一看你就不用 select触发两次
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
引用 11 楼 huang369509940 的回复:
[quote=引用 9 楼 u013554823 的回复:] [quote=引用 8 楼 huang369509940 的回复:] [quote=引用 5 楼 u013554823 的回复:] [quote=引用 3 楼 Z65443344 的回复:] 应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
还有点击同一条数据不能反应 怎么可以让关闭第二个窗体点击同一条数据后可以反映啊[/quote] 你不是第二个窗体直接把之前点击的给删了么?选择的index没变化是不会触发SelectedIndexChanged事件的[/quote] 那你不如用listview的MouseClick事件呢[/quote]ng 没反应啊 就这个
黄大仙儿 2014-04-25
  • 打赏
  • 举报
回复
引用 9 楼 u013554823 的回复:
[quote=引用 8 楼 huang369509940 的回复:] [quote=引用 5 楼 u013554823 的回复:] [quote=引用 3 楼 Z65443344 的回复:] 应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
还有点击同一条数据不能反应 怎么可以让关闭第二个窗体点击同一条数据后可以反映啊[/quote] 你不是第二个窗体直接把之前点击的给删了么?选择的index没变化是不会触发SelectedIndexChanged事件的[/quote] 有的也不删除 直接关闭第二个 你帮我想想[/quote] 那你不如用listview的MouseClick事件呢
於黾 2014-04-25
  • 打赏
  • 举报
回复
引用 7 楼 u013554823 的回复:
[quote=引用 3 楼 Z65443344 的回复:] 应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
不行 因为触发是在绑定后 [/quote] 其实就是你绑定的过程中触发的. 你先定义个变量,让它是false.当你打开第二个窗口的时候,让它变为true 等你绑定完了,再让它变成false
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
引用 8 楼 huang369509940 的回复:
[quote=引用 5 楼 u013554823 的回复:] [quote=引用 3 楼 Z65443344 的回复:] 应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
还有点击同一条数据不能反应 怎么可以让关闭第二个窗体点击同一条数据后可以反映啊[/quote] 你不是第二个窗体直接把之前点击的给删了么?选择的index没变化是不会触发SelectedIndexChanged事件的[/quote] 有的也不删除 直接关闭第二个 你帮我想想
黄大仙儿 2014-04-25
  • 打赏
  • 举报
回复
引用 5 楼 u013554823 的回复:
[quote=引用 3 楼 Z65443344 的回复:] 应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
还有点击同一条数据不能反应 怎么可以让关闭第二个窗体点击同一条数据后可以反映啊[/quote] 你不是第二个窗体直接把之前点击的给删了么?选择的index没变化是不会触发SelectedIndexChanged事件的
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
不行 因为触发是在绑定后
於黾 2014-04-25
  • 打赏
  • 举报
回复
点击同一条数据,SelectedIndexChanged事件没有触发 你可以自己写click事件,要判断下SelectedIndex是否是-1
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
还有点击同一条数据不能反应 怎么可以让关闭第二个窗体点击同一条数据后可以反映啊
黄大仙儿 2014-04-25
  • 打赏
  • 举报
回复
不用楼上那么麻烦。。。 “删除第一个窗体中当前组的信息”之前,先取消委托listView.SelectedIndexChanged-=new EventHandler(listView_SelectedIndexChanged); 删除后再增加委托listView.SelectedIndexChanged+=new EventHandler(listView_SelectedIndexChanged);
於黾 2014-04-25
  • 打赏
  • 举报
回复
应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
於黾 2014-04-25
  • 打赏
  • 举报
回复
你在事件里加个参数,如果是执行前,就执行,如果是执行后,就直接return 同时改写参数为执行前.
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
在线等啊!!!!!
黄大仙儿 2014-04-25
  • 打赏
  • 举报
回复
引用 23 楼 u013554823 的回复:
toolstrip 里面button 显示两行 怎么控制啊
你是要显示两行还是不要显示两行?
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
引用 20 楼 huang369509940 的回复:
[quote=引用 19 楼 u013554823 的回复:] [quote=引用 18 楼 huang369509940 的回复:] [quote=引用 12 楼 u013554823 的回复:] [quote=引用 11 楼 huang369509940 的回复:] [quote=引用 9 楼 u013554823 的回复:] [quote=引用 8 楼 huang369509940 的回复:] [quote=引用 5 楼 u013554823 的回复:] [quote=引用 3 楼 Z65443344 的回复:] 应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
还有点击同一条数据不能反应 怎么可以让关闭第二个窗体点击同一条数据后可以反映啊[/quote] 你不是第二个窗体直接把之前点击的给删了么?选择的index没变化是不会触发SelectedIndexChanged事件的[/quote] 那你不如用listview的MouseClick事件呢[/quote]ng 没反应啊 就这个[/quote] 啊?[/quote] 根本就不管用 亲 你用过listiew么[/quote] 当然了 我项目中一直在用 怎么可能不管用

        private void listView_MouseClick(object sender, MouseEventArgs e)
        {
            if (listView.SelectedItems.Count > 0)
            {
                ListViewItem lvi = listView.SelectedItems[0];
                //做你要做的
            }
        }
[/quote] toolstrip 里面button 显示两行 怎么控制啊
lfszyxd 2014-04-25
  • 打赏
  • 举报
回复
引用 20 楼 huang369509940 的回复:
[quote=引用 19 楼 u013554823 的回复:] [quote=引用 18 楼 huang369509940 的回复:] [quote=引用 12 楼 u013554823 的回复:] [quote=引用 11 楼 huang369509940 的回复:] [quote=引用 9 楼 u013554823 的回复:] [quote=引用 8 楼 huang369509940 的回复:] [quote=引用 5 楼 u013554823 的回复:] [quote=引用 3 楼 Z65443344 的回复:] 应该是"删除第一个窗体中当前组的信息"之后修改参数为执行前 这样你在删除重新绑定之间的操作,不管刷新了多少次,都不执行 bool型的全局变量就可以了
还有点击同一条数据不能反应 怎么可以让关闭第二个窗体点击同一条数据后可以反映啊[/quote] 你不是第二个窗体直接把之前点击的给删了么?选择的index没变化是不会触发SelectedIndexChanged事件的[/quote] 那你不如用listview的MouseClick事件呢[/quote]ng 没反应啊 就这个[/quote] 啊?[/quote] 根本就不管用 亲 你用过listiew么[/quote] 当然了 我项目中一直在用 怎么可能不管用

        private void listView_MouseClick(object sender, MouseEventArgs e)
        {
            if (listView.SelectedItems.Count > 0)
            {
                ListViewItem lvi = listView.SelectedItems[0];
                //做你要做的
            }
        }
[/quote] 谢谢了
加载更多回复(3)

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧