我目前正在开发一个在网格中显示用户数据的项目,每个用户都有一个总数,当点击时会展开以显示构成该总数的子项目,并且可以再次展开它们以显示更多详细信息。
我目前通过使用DataGridView将其数据绑定到DataTable来实现此目的,我在“RowsAdded”事件中隐藏每个用户的子项,然后在单击主用户行/子行时显示/隐藏它们。 这个问题的主要问题是当数据发生变化时滚动条跳了很多,我要求它只在用户需要时才移动。 我还要求不必覆盖任何行,并且父行应该显示子项中值的总和(我可以手动执行此部分,更重要的部分是它不是像outlook样式列表那样的分组)。
我的问题是:是否有更好的方法以表格格式扩展条目?如果隐藏和取消隐藏是唯一的方法,那么任何想法如何解决滚动问题?
我已经尝试过隐藏和显示行,因为我已经说过了,我也尝试隐藏并显示另一个Control(在本例中是另一个DataGridView)这个方法的问题是它覆盖了其他行,因为我还没有找到填补控制空间的可行方法。
答案 0 :(得分:0)
您可以使用以下代码来消除滚动动画。
dataGridView1.ScrollBars = ScrollBars.None;
// Do your show/hide on your datagridview rows
dataGridView1.ScrollBars = ScrollBars.Both;
答案 1 :(得分:0)
在最后,没有令人满意的方法来使用winforms这样做,所以我被迫交换到WPF,我在大约2小时内完成了所有操作。
我的最终解决方案是使用包含DataGrid的rowdetails的DataGrid。