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

lfszyxd 2014-04-25 09:55:54
就是两个页面 第一个用显示分组信息 点击分组信息在selectedindexchanged中写 窗体的showdialog语句 弹出第二个窗体
第二个窗体执行完任务后 删除第一个窗体中当前组的信息 关闭窗口 会自动触发selectedindexchanged 并自动弹出显示下一个分组的窗体 怎么控制下 啊
...全文
405 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)
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在C# WinForm开发ListView控件常用于展示数据集合,但默认不支持文本编辑或双击后显示下拉列表。为实现这些功能,可以创建一个自定义用户控件(UserControl),将ListView、TextBox和ComboBox嵌入其。以下是实现步骤: 创建自定义控件:在Visual Studio,通过“项目”->“添加新项”选择“用户控件”。在设计视图,添加一个ListView、一个TextBox和一个ComboBox。 事件处理:为ListView添加MouseDoubleClick事件,双击单元格时显示ComboBox并隐藏TextBox。为ComboBox添加LostFocus或SelectedIndexChanged事件,选择项或失去焦点时隐藏ComboBox并更新ListView数据。 数据绑定:将ListView和ComboBox的数据源关联,确保二者数据一致。用户在TextBox输入或在ComboBox选择时,更新对应ListView项。 布局调整:调整控件大小和位置,使TextBox或ComboBox能准确覆盖选ListView单元格。可重写OnPaint方法,隐藏原生ListView边框和背景,使新控件与ListView融为一体。 代码实现:处理ListView项的点击和双击事件,通过设置TextBox和ComboBox的Visible属性控制其显示与隐藏,并根据需要设置其Text或SelectedValue。 使用自定义控件:在主窗体或其他界面,将自定义控件拖放至界面,设置数据源和属性后即可使用增强的ListView。 在开发,还需考虑错误处理、性能优化和UI样式一致性等因素,以确保控件稳定性和用户体验。始终注重代码的可读性和可维护性。

111,119

社区成员

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

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

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