Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Why is my AlphaPanel approach to disable the entire GUI so slow?

Why is my AlphaPanel approach to disable the entire GUI so slow?

Scheduled Pinned Locked Moved C#
csharpwinformscomperformancequestion
5 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    arnold_w
    wrote on last edited by
    #1

    I'm programming using WinForms in C# .NET 2.0 and sometimes I want to disable the entire GUI so that the user can't e.g. press any buttons or change any comboboxes. I found this through googling Disable form Controls Without Being Gray!!![^] and I thought it was working great, until today. Whenever USB-cables are connected/disconnected on my PC, I get an event and then I disable the GUI, using the code I linked to above, and re-enumerate my virtual COM-ports and then I enable the GUI again. I discovered that executing this.Controls.Add(alphapanel); takes almost 2 seconds and executing alphapanel.BringToFront(); takes another second! Is there anything I can do to speed this up?

    L 1 Reply Last reply
    0
    • A arnold_w

      I'm programming using WinForms in C# .NET 2.0 and sometimes I want to disable the entire GUI so that the user can't e.g. press any buttons or change any comboboxes. I found this through googling Disable form Controls Without Being Gray!!![^] and I thought it was working great, until today. Whenever USB-cables are connected/disconnected on my PC, I get an event and then I disable the GUI, using the code I linked to above, and re-enumerate my virtual COM-ports and then I enable the GUI again. I discovered that executing this.Controls.Add(alphapanel); takes almost 2 seconds and executing alphapanel.BringToFront(); takes another second! Is there anything I can do to speed this up?

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      You should monitor the individual connections so you don't have to drop and reconnect "everything". You wouldn't drop things in a mission critical app and you should treat all apps as if they were (IMO).

      "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

      A M 2 Replies Last reply
      0
      • L Lost User

        You should monitor the individual connections so you don't have to drop and reconnect "everything". You wouldn't drop things in a mission critical app and you should treat all apps as if they were (IMO).

        "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

        A Offline
        A Offline
        arnold_w
        wrote on last edited by
        #3

        I don't disconnect anything, I just ask the Device Manager what Com ports are present and then I compare that with what was present before and take appropriate actions (e.g. remove or add Com port from a combobox). But this is not what's taking so long, it's the AlphaPanel handling that takes time.

        L 1 Reply Last reply
        0
        • A arnold_w

          I don't disconnect anything, I just ask the Device Manager what Com ports are present and then I compare that with what was present before and take appropriate actions (e.g. remove or add Com port from a combobox). But this is not what's taking so long, it's the AlphaPanel handling that takes time.

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #4

          If the GUI is slow, it means you should be doing this "AlphaPanel handling" in the background. [BackgroundWorker Class (System.ComponentModel) | Microsoft Learn](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.backgroundworker?view=net-7.0)

          "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

          1 Reply Last reply
          0
          • L Lost User

            You should monitor the individual connections so you don't have to drop and reconnect "everything". You wouldn't drop things in a mission critical app and you should treat all apps as if they were (IMO).

            "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

            M Offline
            M Offline
            Member_15907884
            wrote on last edited by
            #5

            After a test with loaded (I loaded them from a hdd-drive) 3000x3000 images (Same Datatype) it worked fast and without problems. Too much changes

            1 Reply Last reply
            0
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • World
            • Users
            • Groups