• 0

[VB.NET] Moving a form


Question

I have a timer to move a form up frmNotification.Height in ShowTime milliseconds..

   Private WithEvents tmrTimer As New System.Windows.Forms.Timer

... (called in a function)
        tmrTimer.Interval = Math.Floor(ShowTime / frmNotification.Height)
        tmrTimer.Enabled = True
...

    Private Sub tmrTimer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmrTimer.Tick
        frmNotification.Top -= 1
        If (frmNotification.Top = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height - frmNotification.Height - 28) Then
            tmrTimer.Enabled = False
        End If
    End Sub

But it goes very slow no matter what the timer is set at.. is there another way I could move it up without blocking (a loop in another thread maybe?) or do I have to use some kind of high resolution timer?

Edited by todd`
Link to comment
https://www.neowin.net/forum/topic/201336-vbnet-moving-a-form/
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Well, it's moving very slowly because you're only moving it up one pixel at a time. If you want it to move faster, you can either move it up further each tick, or use a System.Timers.Timer (as opposed to Windows.Forms.Timer). It has a higher resolution, so the speed still increases when you lower the interval below 100 (the SWF timer may or may not speed up).

  • 0

Thanks for the suggestions.. The AnimateWindow API seems the easiest and that's what I'm trying to get working..

AnimateWindow(frmNotification.Handle.ToInt32, ShowTime, &H8)

..is what I have, but nothing happens and when I print the result, it's False. The form is hidden at the time this function is called so I don't know what's wrong (yes, I added the declaration ;)).

  • 0

don't use AllApi for Vb.NET. use http://www.pinvoke.net instead.

http://www.pinvoke.net/default.aspx/user32.AnimateWindow

   <FlagsAttribute()> _
    Public Enum AnimateWindowFlags
        AW_HOR_POSITIVE = &H1
        AW_HOR_NEGATIVE = &H2
        AW_VER_POSITIVE = &H4
        AW_VER_NEGATIVE = &H8
        AW_CENTER = &H10
        AW_HIDE = &H10000
        AW_ACTIVATE = &H20000
        AW_SLIDE = &H40000
        AW_BLEND = &H80000
    End Enum
    Public Declare Auto Function AnimateWindow Lib "user32" (ByVal hwnd As IntPtr, ByVal time As Integer, ByVal flags As AnimateWindowFlags) As Boolean


'Usage
        Dim f2 As Form2
        f2 = New Form2
        AnimateWindow(f2.Handle, 1000, AnimateWindowFlags.AW_VER_NEGATIVE Or AnimateWindowFlags.AW_SLIDE)
        f2.Show()

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

    • No registered users viewing this page.
  • Posts

    • AMD Releases new GPU driver with Windows Server 2025 support and new Ryzen chips by Taras Buria AMD has released a new Pro Edition driver for customers with Radeon PRO graphics cards and certain AMD Ryzen PRO and Ryzen AI processors. These drivers get fewer updates than your standard Radeon Software drivers for mainstream gaming graphics cards, and their goal is to deliver a more stable experience with a bigger emphasis on performance and security for professional environments and use-case scenarios. AMD Software Pro Edition 25 Q2 is now available for download with the following update highlights: Support for AMD Ryzen AI PRO Series and AMD Ryzen AI Max 300 Series Support for Microsoft Windows Server 2025 And here is the list of known bugs: “Media Offline” error appears after importing certain 8K media files in DaVinci Resolve Terrain mapping images fail to load properly on Tresus MVPPro Issue with shadows when using the Subdivision Surface modifier in Blender EEVEE AMD Software Pro Edition 25 Q2 driver is compatible with 64-bit Windows 10 or 11 and Windows Server 2022 or 2025 systems with the following AMD processors and graphics cards: AMD Ryzen AI Series Radeon Pro Series Lenovo Mobile HP with AMD Ryzen Pro AMD Ryzen AI Pro Series AMD Ryzen AI Max+ 300 Series AMD Radeon PRO W7000 Series AMD Radeon PRO W6000 Series AMD Radeon PRO W5000 Series AMD Radeon PRO WX Series AMD Radeon Vega Frontier Edition Radeon PRO Duo (Polaris AMD Radeon PRO VII P16s Gen1 P16s Gen2 P14s Gen1 P14s Gen2 P14s Gen3 P14s Gen4 P14s Gen5 HP Loke (AMD Ryzen 9 Pro 7940HS) HP LoxW (AMD Ryzen 5 Pro 7640HS) HP Firefly 14 G11 A HP ZBook Power G11 You can download the AMD Software Pro Edition 25 Q2 driver from the official AMD support page. Full release notes are available on the same page as well.
    • Because of these forums, I decided to give Linux a try a few years ago. I started with Fedora, bounced around to Ubuntu, Mint, and I've landed on PopOS! and I love it. Other than my son's Macbook and his Chromebook, everything in the house runs PopOS!. When I switched my mother over to it, I showed her where the email icon was, and how to get to her Facebook, and I haven't heard a complaint. Linux is far more usable than it once was. I have a dedicated laptop that I try different distros out on all the time, but mostly I reside in Pop. What I love is if I do run into a problem, there are so many forum resources out there to find answers. Most times the distro itself will have user forums that already have a fix for the issue I'm facing. People ditching Windows 10, should they choose to, should at least try Linux. It might not be for them, but if it is, they enter a completely new world of computing. Waiting in the wings will always be Windows 11 or a Mac should they choose that route.
    • The real trick is to make sure the funds go to the right people. Anyone remember the African "famine" of the 1980s/early 1990s? A lot of that was local warlords preventing people from getting food and aid. Thousands of tons of food sat in warehouses and spoiled/got eaten by rodents and untold numbers of innocents perished. Dictatorship and corruption and rot has to be rooted out or else his money is just going to make the wrong people very rich.
  • Recent Achievements

    • Week One Done
      jrromero17 earned a badge
      Week One Done
    • One Month Later
      jrromero17 earned a badge
      One Month Later
    • Conversation Starter
      johnwin1 earned a badge
      Conversation Starter
    • One Month Later
      Marwin earned a badge
      One Month Later
    • One Year In
      fred8615 earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      228
    2. 2
      snowy owl
      156
    3. 3
      ATLien_0
      138
    4. 4
      Xenon
      128
    5. 5
      +FloatingFatMan
      127
  • Tell a friend

    Love Neowin? Tell a friend!