Announcement

Collapse
No announcement yet.

OnShow

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • OnShow

    Hallo
    gibt es eine Möglichkeit Code in einem Ereigniss OnShow zu starten?

    Ich möchte eine Fortschrittsanzeige dem Benutzer anzeigen.
    Leider klappt es bei OnCreate nicht.
    Da sieht der Benutzer die Anzeige erst wenn alles Vorbei ist.

    Ich möchte aber Prozesse erst laufen lassen wenn man die Form sieht.

  • #2
    Aktualisierst du die Form während des Prozesses?

    Wenn ja, könnte OnActivate für dich funktionieren.
    Du solltest aber dafür sorgen das der Code in OnActivate nur einmal ausgeführt wird den Activate/Deactivate wird ja nicht nur beim ersten anzeigen ausgeführt sondern, eben wie der Name auch suggeriert , bei jedem Aktivieren der Form (also z.B wenn die Form nach Fokusverlust den Fokus wieder erhält).

    Gruß
    Ralf

    Comment


    • #3
      Sorry und vergiss den Beitrag ich war der festen Überzeugung das ich im Delphi Bereich bin. Obwohl OnShow hört sich nicht nach NET an (Shown wäre NET). Hast du etwa auch die Foren verwechselt

      Comment


      • #4
        Hört sich sehr nach OnLoad

        Comment


        • #5
          OnLoad geht auch nicht
          ich brauche was wo die Form schon geladen ist.

          Nach Create und Load

          Comment


          • #6
            Ich versuchs nochmal.

            Wenn du das bisher im Shown Event machst sollte das eigentlich funktionieren.
            Gibt's du denn der Form die Chance sich zu aktualisieren?

            Also z.B so in C#

            Code:
                       
                    private void Form_Shown(object sender, EventArgs e)
                    {
                        this.BackColor = Color.Blue;  // irgendeine Änderung an der Form
                        this.Refresh(); // Form aktualisieren 
                        System.Threading.Thread.Sleep(5000);  // lang anhaltende Operation
                        this.BackColor = Color.Red;           
                        this.Refresh();                       
                        System.Threading.Thread.Sleep(5000);  
                    }

            Comment


            • #7
              Die Ereignisreihenfolge für die Form sieht wie folgt aus ( VB 2005 ):
              Resize
              SizeChange
              Move
              Load
              Layout
              VisibleChange
              Activate
              Paint


              Z.B.
              Code:
              Private Sub ButtonX_Click(..)
                 Dim frm as New FormX()
                 'löst FormX.Resize und FormX.SizeChange aus
                 frm.show
                 'löst Move, Load, Layout, VisibleChange und Activate aus
              end Sub     ' erst jetzt tritt das FormX.Paint-Ereignis auf

              Ich hoffe ich konnte euch weiter helfen....

              Comment


              • #8
                Hi
                Ich benutze Delphi2005 :-(
                1.1
                ich habe kein Shown Event

                Comment


                • #9
                  Danke
                  mit Paint hat es super geklappt

                  Comment

                  Working...
                  X