• 0

[VB.NET] Send form to always be in the back?


Question

17 answers to this question

Recommended Posts

  • 0
  gameguy said:
Why? What's the point of even having a form to show anything if it's never going to be seen?

585546886[/snapback]

Well, I want it to be in front while the form is visible, but when it is not visible it still takes the focus away from other windows that are open (which is a huge problem).

  • 0

I don't get it. When a form isn't visible (hidden or closed), it's not taking focus away from other windows :huh:

Also, wait at least 24 hours to bump a thread (Y) Not everyone is in the same time zone, not everyone is online every day, and not everyone checks every thread in every forum ;)

  • 0
  gameguy said:
I don't get it. When a form isn't visible (hidden or closed), it's not taking focus away from other windows :huh:

Also, wait at least 24 hours to bump a thread (Y) Not everyone is in the same time zone, not everyone is online every day, and not everyone checks every thread in every forum ;)

585550836[/snapback]

Sorry about the bump. :blush:

  weenur said:
I'm a little confused, too. How is it that a child window on a hidden form is taking focus?

585552122[/snapback]

The webbrowser control (the IE component) on the form automatically brings the form to the fore front. So when the form is visible, the form is on top of every other form - however, when the form is not visible the form just steals focus from the current window with focus.

I was thinking of a way to solve it- would it be possible to detect the process that has focus automatically. For example, if I have Firefox as my active window and then I switch to notepad as my active window, could I detect that change in focus using an existing library or class? That way I could automatically send focus back to the window that my form stole focus from.

I'm not asking you to write code for me, I just want to know if such a class exists.

Thanks

  • 0
  gameguy said:
I still don't see how a control on a hidden form is taking focus... can you post some code and a screenshot?

585552765[/snapback]

It's the webbrowser control. It's like using Internet Explorer and getting a pop-up. The webbrowser control somehow hooks into my program's form and sets it as the active form. A screenshot wouldn't really show you much - but I'll try to explain it a little better.

I create a program that sits in the system tray (just a little icon) while the form is invisble. While it's hidden I programmatically visit site and extract the important information from the HTML file. The problem is that some sites act as a "pop-up" and try to mimic the behavior of a popup. When the form is visible the form really does pop-up. It also pops-up when the form is invisible, but it remains invisible, so all that you see happening is the form taking the focus away from the window you were working in.

Maybe there is a way to suppress the browser control from altering any of the properties of my program. I'm not really sure. It's really bugging the heck out of me though.

  • 0
  weenur said:
Perhaps you should use the WebClient object to get your page data instead of the browser control, and only use the browser control when you want to display something.

585553577[/snapback]

I do ocassionally look at the rendered page - so the browser control is necessary.

  • 0

Try This:

Add a checkbox to the form.

- In my code I used "khchk" as the name of the checkbox.

Change "Form1" to whatever your form name is in the code below.

This makes sure it doesn't pop up without permission from the user(by checkbox).

 ? ?Private Sub Form1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.GotFocus

? ? ? ?If Me.khchk.Checked = True Then

? ? ? ? ? ?Me.Visible = False

? ? ? ?End If

? [b]This minimizes the form to tray.[/b] form to tray.

[code] ? ?Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize

? ? ? ?If Me.WindowState = FormWindowState.Minimized Then

? ? ? ? ? ?Me.Visible = False

? ?[b]Restores the window. This code is needed for the next code clip[/b]s needed for the next code clip

[code] ? ?Private Sub RestoreWindow()

? ? ? ?Me.Visible = True

? ? ? ?If Me.Visible = True Then

? ? ? ? ? ?Me.WindowState = FormWindowState.Normal

? ? ? ? ? ?Me.TopMost = True

? ? ? ?End If

? ? ? ?If Me.TopMost = True Then

? ?[b]This makes the form visible or hidden depending on whether it is visible or not and whether the checkbox is checked or not.[/b]ther it is visible or not and whether the checkbox is checked or not.

[code] ? ?Private Sub unhide()

? ? ? ?If Me.Visible = False Then

? ? ? ? ? ?If Me.khchk.Checked = False Then

? ? ? ? ? ? ? ?Me.RestoreWindow()

? ? ? ? ? ?End If

? ? ? ?El[b]This is an option for a button to check to checkbox and keep the form from showing itself.[/b]/code]

This is an option for a button to check to checkbox and keep the form from showing itself.

[code] ? ?Private Sub KeepHidden()

? ? ? ?If Me.khchk.Checked = True Then

? ? ? ? ? ?Me.k[b]Add a context menu to the tray icon with a button that runs: Me.unhide() and a button that runs Me.KeepHidden()

Like maby just the tray icon's click sub[/b]h a button that runs: Me.unhide() a[b][color=lightblue]DigitalSnow[/color][/b]e tray icon's click sub

Hope this helps,

[color=lightblue]DigitalSnow[/color]

Edited by DigitalSnow
  • 0
  VB Guy said:
I do ocassionally look at the rendered page - so the browser control is necessary.

585553724[/snapback]

Then I suggest you use a WebClient object and when you wish to view the page, create a WebBrowser on the fly (Y)

  • 0

I'd be interested in this to....basically, if the z-order of the form gets changed, it sends itself right back to the bottom of the order. I'm just not sure what event is triggered, if any, when the z-order gets changed. If I know that, then I can simply use a sendtoback command.

  • 0
  Cool4 said:
well, i see everyone is creating a browser for SJ :p

i think you should look in the webbrowser control methods because it's WB that is taking the focus even if the form is hidden

585560391[/snapback]

SJ? I'm not sure what that stands for.

Anyway - I do recall seeing some code written for VB 6 that showed how to do it - but I can't find it. It was at PSCode.com. If anyone has any progress don't hesitate to post. I'll keep looking too - there has to some API that can accomplish this.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I'm just thinking out loud for a second...could it be the cookie prompt that kicks up the adblock message? The reason I ask is that on Firefox (ad-block enabled but not for Neowin) I don't get the cookie consent option. But if I open Chrome (ad-block disabled) and go to the Neowin I get the cookie banner and then it's all fine. Some form of conflict of interest between the banners? It's probably nothing, but that's what I have just noticed.
    • SoundSwitch 6.14.1 by Razvan Serea SoundSwitch is a Windows app that makes switching your sound devices super easy. Normally, changing speakers or microphones means clicking through annoying menus. With SoundSwitch, you just press a shortcut key (like Ctrl + Alt + F1) — and it switches to the device you want. You can set different keys for speakers, headphones, microphones, or even groups of devices. It also lets you mute your mic with a hotkey and shows a clear banner so you know it's muted. It runs in the background, shows up in your taskbar, and starts with Windows if you want. It’s perfect if you use multiple audio devices and get tired of clicking around every time you want to change one. SoundSwitch features: Customizable Hotkeys: Assign specific key combinations to switch between audio devices quickly. ​ Playback and Recording Device Switching: Toggle between selected playback and recording devices without navigating through system menus. ​ Microphone Mute Toggle: Use hotkeys to mute or unmute the default microphone. ​ Persistent Mute Notification: Displays a compact banner indicating the microphone's mute state, which remains visible until the microphone is unmuted. ​ Profile Management: Create profiles to switch between specific combinations of playback and recording devices using designated hotkeys. ​ Command Line Interface (CLI): Control SoundSwitch through command-line commands for device switching, microphone mute control, and profile management. ​ Auto-Start with Windows: Option to launch SoundSwitch automatically upon system startup. ​ Multi-Language Support: Includes translations for various languages, such as Tamil. ​ Notification Customization: Choose the type of notifications displayed for device switching and mute status. ​ Support for Various Hotkey Combinations: Accepts single keys like PrintScreen, Pause, Home, End, and function keys as hotkeys. ​ System Tray Integration: Access settings and perform device switching directly from the system tray icon. ​ Device Grouping: Organize multiple devices into groups for streamlined switching. ​ User-Friendly Interface: Provides an intuitive setup and configuration process for users. ​ Open-Source Development: Available on GitHub for community contributions and transparency. ​ Regular Updates: Actively maintained with new features and bug fixes. ​ SoundSwitch 6.14.1 changelog: Bug Fixes settings: fix opening settings crashing the application when using CLI or opening SoundSwitch again (b3dca74) Languages Amharic: Added About translation using Weblate (8a40dab) Japanese: Translated About using Weblate (3541994) Japanese: Translated Settings using Weblate (ca5b2fe) Japanese: Translated Settings using Weblate (39a2340) Japanese: Translated Tray Icon using Weblate (1286b92) Japanese: Translated Update Download using Weblate (1c2c658) Norwegian Bokmål: Translated Settings using Weblate (5aaf243) Portuguese: Translated Settings using Weblate (e11f18d) Swedish: Translated Settings using Weblate (8b7b738) Download: SoundSwitch 6.14.1 | 45.4 MB (Open Source) View: SoundSwitch Website | Github | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Wow, the usual crowd is out in full force again — the trolls who think sarcasm is insight, the doom prophets who scream 'web apps = surveillance', and the armchair devs who still think Outlook 2003 was peak tech. Here’s a wild idea: maybe evaluate an app on what it does instead of what your paranoia imagines it’s doing. The new Outlook is fast, clean, and tightly integrated. No, it’s not perfect — what app is? But if your main tech critique is 'It’s different and Microsoft is evil', you’re not reviewing software. You’re just rehearsing your trust issues. Don't like it? Cool. But at least bring something to the table besides tired one-liners and Chicken Little routines. Some of us actually use this stuff and prefer practical feedback over pointless whining.
    • And they will only last thousands of years underground we don’t know where.
    • Went on a bit of a Bethesda binge recently after the Oblivion remaster release, although not in a positive way. I liked the OG Oblivion and completed it nearly 20 years ago, but the remaster didn't resonate with me in the same way - just feels like it hasn't aged well, gameplay-wise - so I moved onto finally giving Skyrim a go after owning it for so many years, and I had what I've been informed was a classic introduction to the game... It got stuck shortly after that at the point where an NPC's supposed to be thrown on the chopping block and beheaded; everyone just stood in place twiddling their thumbs and not saying their lines (this was the Xbox version too of the 'Special Edition' with no mods enabled). Did the same every time I reloaded, so took it as a sign that even the game was telling me to just bin it, so I did and moved onto Fallout 4, which is alright so far (touch wood).
  • Recent Achievements

    • Reacting Well
      James courage Tabla earned a badge
      Reacting Well
    • Apprentice
      DarkShrunken went up a rank
      Apprentice
    • Dedicated
      CHUNWEI earned a badge
      Dedicated
    • Collaborator
      DarkShrunken earned a badge
      Collaborator
    • Rookie
      Pat-Garrett went up a rank
      Rookie
  • Popular Contributors

    1. 1
      +primortal
      341
    2. 2
      snowy owl
      167
    3. 3
      ATLien_0
      161
    4. 4
      +FloatingFatMan
      161
    5. 5
      Xenon
      128
  • Tell a friend

    Love Neowin? Tell a friend!