【发布时间】:2019-05-15 08:40:40
【问题描述】:
我有一个代码可以删除我在面板中创建的文本框和 datetimepicker...删除代码适用于所有 TEXTBOX,但是当删除 datetimepicker 时它不会删除所有 datetimepicker。 示例:运行代码时有 4 个文本框和 4 个日期时间选择器,面板将删除所有 4 个文本框,但仅删除 2 个日期时间选择器。我真的无法找出问题所在。请帮助我...谢谢!
代码在这里:
For Each ctrlTxt As TextBox In panelGroupDependent.Controls.OfType(Of TextBox)()
ctrlTxt.Dispose()
Next
For Each ctrlDtp As DateTimePicker In panelGroupDependent.Controls.OfType(Of DateTimePicker)()
ctrlDtp.Dispose()
Next
【问题讨论】:
-
那么实际发生了什么?您是否调试过代码,即设置断点并单步执行以确保实际执行您期望的每一行并且每个值都是您期望的?老实说,我很惊讶该代码完全有效。看起来它正在修改一个集合,同时向我枚举它。尝试在每个
OfType之后添加一个ToArray调用,例如panelGroupDependent.Controls.OfType(Of DateTimePicker)().ToArray(),看看这是否有所作为。 -
@jmcilhinney 在放置 .ToArray() 后它现在可以工作了,谢谢伙计,它是如何工作的?哈哈哈
-
我已经添加了一个答案,包括完整的解释。
标签: vb.net