У меня есть форма vb.net, которая использует несколько текстовых полей на нескольких разных вкладках. На одной из этих вкладок у меня есть подмножество вкладок. Моя функция сохранения вызывает сохраненные процедуры для каждой вкладки и циклически перебирает значения на каждой странице, чтобы выполнить обновление или «добавить новое». Я заметил, что во время тестирования некоторые страницы не сохраняют и не обновляют значения в текстовых полях. После нескольких дней исследований я понял, что если я что-то редактирую, а затем физически щелкаю другие вкладки, все сохраняется / обновляется правильно. Если я не просматриваю их, они не все сохраняются. Есть ли причина, по которой мне не хватает? Когда вы вводите значение поиска, я просматриваю страницы и заполняю их все одновременно, поэтому я предполагал, что он записал эти значения ДО того, как они будут физически отрисованы ... Я думаю, я ошибаюсь?
Да, они есть на всех вкладках.





От Документация TabPage Раздел примечаний
Controls contained in a TabPage are not created until the tab page is shown, and any data bindings in these controls are not activated until the tab page is shown.
Итак, ответ на ваш вопрос: «Да, закладка должна отображаться».
Однако определение «показанного» подлежит толкованию. На самом деле, все, что вам нужно сделать, установить для свойства TabPage.Visible значение True, а не циклически просматривать и отображать каждый TabPage.
Рекурсивное сканирование формы для элементов управления TabPage будет работать:
Private Shared Sub TabPagesVisible(parent As Control)
For Each c As Control In parent.Controls
If TypeOf c Is TabPage Then c.Visible = True
TabPagesVisible(c)
Next
End Sub
Пример использования:
Sub SaveFormTabData()
TabPagesVisible(Me) ' Me refers to the containing form
' code to save control data
End Sub
Заполняются ли текстовые поля с помощью привязки данных?