Skip to content

ExplorerBrowser control rewrites TranslateAccelerator of whole app and prevents all other controls from processing the Tab key #40

@pinewscz-web

Description

@pinewscz-web

Describe the bug
The ExplorerBrowser control prevents all other controls from processing the Tab key.

To Reproduce
Steps to reproduce the behavior:

  1. Install WindowsAPICodePack into .NET project via NuGet package manager
  2. Place one ExplorerBrowser control in main Form
  3. Place test TextBox in the same form, make it Multiline True and AcceptTab True
  4. Make single Button too, which navigates ExplorerBrowser to some existing folder, like C:\
  5. Run and Navigate
  6. After navigation try to write Tab into test TextBox. Its not possible anymore

Expected behavior
TextBox should accept Tab key no matters what ExplorerBrowser does

Desktop:

  • Windows 11 64bit
  • VB.NET
  • Version 8.0.14

Additional context
Tried full load of copilot expertise and hacks with no results. Only hack is to Navigate, manually click into ExplorerBrowser to activate it and press serie of Tab keys manually (not SendKeys), until ExplorerBrowser concludes that user is trying to leave ExplorerBrowser control. After this serie of manual Tab presses when focus is finally transferred to my testing TextBox, whole app starts to process Tab key where and as it should. This (correct) state persists over next Navigations of ExplorerBrowser

Copilot adviced me to add this: ExplorerBrowser appears to keep IShellView in UIActivateIO(TRUE) state after first navigation, and does not call UIActivateIO(FALSE) unless user manually tabs out of the view.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions