C#数据库工具开发(十二)
问题(07/30)
1. 如何实现同步两个DGV的滚动条
1 | private void dataXML_Scroll(object sender, ScrollEventArgs e) |
2. 如何实现一次删除DGV中的多行
1 | foreach (DataGridViewRow row in dataXML.Rows) |
在if条件中写要删除的行应该满足的条件,设置行被选中(利用Selected这个property),再删除选中的行。
注意:不能用foreach每一行,加上判断,直接删除。因为每一次删除后,实际上Rows已经改变,循环不能遍历到所有满足条件的行。(先存行号,后删除的做法也一样,同理,每一次删除,行号已经改变)
3. 避免事件无意间调用
问题背景:我想要按下delete后,不删除这一行,只清空改行所有数据。想到的解决方法是在删除这一行后,在同一个index新建一行,但是总是出现各种问题。后来发现,因为我在dataXML_RowsAdded
(行增加事件)中有完成其他功能,而实际上,我每次新建一行,都会触发这个事件,这就导致出现问题。
解决方法:设定一个bool标签deleting,在删除触发的方法中,设定deleting一开始为true,最后设回false,并在增加行触发的方法中,判断deleting的值,若为true则不执行任何操作。