Announcement

Collapse
No announcement yet.

Eigenes Element

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

  • Eigenes Element

    Hallo zusammen! ich möchte ein eigenes Element erstellen, das kurz gehalten, eine GroupBox ist und ein Panel enthält. Beide sollen feste Größen haben, das Panel eine Feste Position. Ich habe dazu schon mal eine Klasse erstellt und von GroupBox abgeleitet. In der "Entwurfsansicht" habe ich dann ein Panel hinzugefügt und die Eigenschaften anpasst. Die abgeleitete Groupbox mit dem Panel hab ich in eine Form eingebaut. Das panel wird aber leider nicht angezeigt. Hier mal der Code der abgeleiteten Groupbox:

    [highlight=c#]using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace FanCurve
    {
    class GridContainer : GroupBox
    {
    private Panel curveGrid;



    public GridContainer()
    {
    base.Width = 462;
    base.Height = 501;

    }

    private void InitializeComponent()
    {
    this.curveGrid = new System.Windows.Forms.Panel();
    this.SuspendLayout();
    //
    // curveGrid
    //
    this.curveGrid.BackColor = System.Drawing.Color.Black;
    this.curveGrid.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
    this.curveGrid.Location = new System.Drawing.Point(40, 31);
    this.curveGrid.Name = "curveGrid";
    this.curveGrid.Size = new System.Drawing.Size(400, 400);
    this.curveGrid.TabIndex = 0;
    this.ResumeLayout(false);

    }
    }
    }[/highlight]
    Zuletzt editiert von brown78; 09.04.2011, 10:48.

  • #2
    Controls werden immer auf anderen Controls dargestellt(Ausnahme eine Form). Du musst das Panel also noch einem Vatercontrol (Container) hinzufügen. In deinem Fall also vermutlich der Groupbox.

    In deiner InitializeComponent() vor ResumeLayout() solltest du also einmal

    this.Controls.Add(curveGrid);
    aufrufen. InitializeComponent auch vom Constructor aus aufzurufen wäre hilfreich.

    Comment


    • #3
      Wenn das Panel in der Groupbox liegen soll, sollte diese auch das Elternelement sein...

      http://msdn.microsoft.com/de-de/libr...ol.parent.aspx
      Christian

      Comment


      • #4
        @ Ralf Jansen: Danke, das wars!

        Habe allerdings noch das Problem, dass ich von der Groupbox die Eigenschaft "Text" nicht ändern kann.
        Zuletzt editiert von brown78; 09.04.2011, 12:07.

        Comment


        • #5
          Habe allerdings noch das Problem, dass ich von der Groupbox die Eigenschaft "Text" nicht ändern kann.
          Neue Frage neuer Thread und dann am besten mit ein paar mehr Details. Z.B. von wo versuchst du GroupBox.Text zu ändern und wann (Designzeit vs. Laufzeit).

          Comment

          Working...
          X