Я столкнулся с самой странной ошибкой, связанной с DataGridViews в Windows Forms.
У меня есть TabControl, который должен содержать закрепленный DataGridView на каждой вкладке. Я подумал, что было бы удобно, чтобы сетка фокусировалась на изменении страницы вкладки, чтобы пользователь мог просто навести указатель мыши на сетку и начать прокрутку, когда он меняет страницу. Итак, я просто добавил grids[tabs.SelectedIndex].Focus()
в обработчик событий для изменения вкладки.
Однако произошло нечто действительно странное. В моем тестовом приложении у меня есть три вкладки. Если я попробую прокрутить сетку сразу после запуска приложения, она не будет работать; Я должен сначала щелкнуть в сетке. Я ожидал этого. Однако, если я изменю вкладку, я не смогу прокрутить другие сетки, пока не нажму, кроме первой!
Итак, если я переключаю страницы на вторую страницу, а затем возвращаюсь на первую, я могу автоматически прокручивать эту сетку без щелчка, но если я затем переключаюсь на третью, мне нужно щелкнуть, чтобы сетка сфокусировалась.
Я посмотрел на свойства CanFocus
сеток, и кажется, что только для первой сетки установлено значение True. Все они созданы программно, и все одинаково. Я не понимаю, почему они были бы разными.
Есть идеи?