none
ElementHost in Windows.Forms.Form nicht in ClientRect RRS feed

  • Frage

  • Hallo,

    habe eine Form zur Laufzeit erzeugt und ein ElementHost (mit einem Canvas als Child) als Control der Form zugefügt. Das ElementHost.Dock = DockStyle.Fill. Leider wird das Canvas-Panel nicht im Client-Bereich der Form integriert, sondern beginnt schon unter der Titelleiste?Da ich die Mauskoordinaten in der Statusleiste ausgeben will, müsste ich ja dann den "Rahmenbereich" der Form abziehen?

    Stellt sich die Frage: Wie kann ich das ElementHost im Client-Bereich platzieren?

    MfG

    SZ

    Donnerstag, 2. Juli 2015 12:54

Antworten

  • Hallo Heiko,

    danke für die Antwort.

    Habe den Fehler gerade gefunden... lag leider an mir (hatte ein ScaleTransform für Zoom drin mit Faktor 1.1, daher wurde das ElementHost bis unter die Titelleiste vergrößert). Bin noch Anfänger ("denn sie wissen nicht was sie tun")  sorry.

    Grüße

    SZ

    • Als Antwort markiert Kurzine Freitag, 3. Juli 2015 05:21
    Freitag, 3. Juli 2015 05:13

Alle Antworten

  • Hallo SZ,

    teilweise vestehe ich nicht ganz, was du meinst oder möchtest. Unter der Titelzeile beginnt der Client-Bereich, also wird das Canvas im Client-Bereich positioniert.

    Wenn du einen Leerraum zwischen ElementHost und Titelzeile oder den anderen Seiten haben möchtest, kannst du das Fill auf None umstellen und stattdessen einen Anchor setzen, z.B.

    this.elementHost1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
                | System.Windows.Forms.AnchorStyles.Left) 
                | System.Windows.Forms.AnchorStyles.Right)));
    this.elementHost1.Location = new System.Drawing.Point(13, 22);
    this.elementHost1.Size = new System.Drawing.Size(292, 436);

    Was das Canvas angeht, vermute ich, daß es sich nicht automatisch vergrößern lassen wird, wenn man die Form mit der Maus größer zieht.

    Wenn die Mauskoordinaten auf WinForms-Seite ermittelt werden, muß die Position des ElementHost abgezogen werden.

    Gruß
    Heiko


    Donnerstag, 2. Juli 2015 16:36
  • Hallo Heiko,

    danke für die Antwort.

    Habe den Fehler gerade gefunden... lag leider an mir (hatte ein ScaleTransform für Zoom drin mit Faktor 1.1, daher wurde das ElementHost bis unter die Titelleiste vergrößert). Bin noch Anfänger ("denn sie wissen nicht was sie tun")  sorry.

    Grüße

    SZ

    • Als Antwort markiert Kurzine Freitag, 3. Juli 2015 05:21
    Freitag, 3. Juli 2015 05:13