Announcement

Collapse
No announcement yet.

Fenster im Panel anzeigen

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

  • Fenster im Panel anzeigen

    Hallo,

    unter Delphi habe ich die CreateParams Methodes überschrieben und dort den WindowsStyle geändert und dann entsprechend im Load Ereignis das Fenster mit dem Parent verknüpft. Hat das jemand schon mit .NET gemacht? Dort komme ich nicht an die WindowsStyle Enum ran. Wenn ich es richtig gesehen habe gibt es dafür jetzt eigentlich Attribute die benutzt werden sollten? Danke für Infos

  • #2
    Hallo, manchmal kann man sich nach genug Kaffee selbst antworten

    Zunächt muß die WS_CHILD Konstante definiert werden:

    <PRE>
    namespace Win32API
    {
    using System.Runtime.InteropServices;<br>
    class Win32
    {
    public const int WS_CHILD = unchecked((int)0x40000000L);
    }
    }
    </PRE>

    Danach werden die CreateParams überschrieben:

    <PRE>
    protected override CreateParams CreateParams
    {
    get
    {
    CreateParams cp = base.CreateParams;
    cp.Style |= Win32API.Win32.WS_CHILD;
    return cp;
    }
    }
    </PRE>

    Als letzes wird die LOAD Methode der Form noch gefüllt:

    <PRE>
    private void frmBase_Load(object sender, System.EventArgs e)
    {
    this.TopLevel = false;
    this.FormBorderStyle = FormBorderStyle.None;
    this.Dock = DockStyle.Fill;
    this.Icon = null;
    this.Parent = parentPanel;
    }
    </PRE>

    Uff. Danach kann die Form z.B. wie hier in einem Panel angezeigt werden. Einfach eine Membervariable definieren in der der Verweis auf das Panel gespeichert wird -> hier "parentPanel" und diesen mit im Constructor übergeben. Natürlich kann mach die Konstruktoren auch überladen so das die Form wahlweise im Panel oder als Standard Form angezeigt wird.

    Ich denke mal ich werde nicht der einzige sein der diese Funktion braucht und hoffe alle anderen hilft mein Posting ;

    Comment

    Working...
    X