Event per Software auslösen



  • Hallo,

    ich möchte einige Ereignise per Software auslösen.

    Soweit ich das seh gibt es nur performClick um einen Click zu simulieren.

    Wie kann ich denn z.B. das resize Event per Software auslösen

    Danke



  • Hallo,

    wenn du die Größe änderst, wird auch das Resize Event gefeuert 🙂
    Es macht keinen Sinn, Controls von außen vorgeben zu wollen, wann sie irgendwelche Events auslösen, das obliegt einzig ihrer internen Logik.

    Wenn du einfach den Code in einem Eventhandler testen willst, dann lager diesen in eine extra Methode aus und ruf die dann sowohl im Eventhandler als auch da wo du sie sonst noch aufrufen willst, auf.



  • Es geht halt draum ich hab ein Panel auf einer Form und dieses Panel ist mit einer Farbe gefüllt. Wenn ich jetzt die Form vergrößer dann soll auch das Panel neu gezeichnet werden. Mit dieser Dock Eigenschaft komm ich nicht ans Ziel.

    auch so gehts nicht

    private void panel1_Paint(object sender, PaintEventArgs e)
            {
                Graphics p = panel1.CreateGraphics();
                SolidBrush mybrush = new SolidBrush(Color.Red);
    
                p.FillRectangle(mybrush, 0, 0, this.Width, this.Height); 
    
            }
    
            private void Form1_Resize(object sender, EventArgs e)
            {
                panel1.Invalidate();
                panel1.Refresh();
            }
    


  • Sobald eine Form vergrößert/verkleinert wird, werden immer alle enthaltenen Steuerelemente neu gezeichnet - da brauchst du nichts von Hand tun.
    Wenn du die Größe des Panels anpassen willst, dann verwende Dock bzw. Anchor dafür (oder verändere per Code Location und Size entsprechend).

    Und bist du sicher, daß du this.Width/Height anstatt panel1.Width/Height verwenden willst?

    P.S. Verwende niemals CreateGraphics, sondern e.Graphics!!!


Anmelden zum Antworten