Thema: C# MDI mit WinForms?

Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#9

Re: MDI mit WinForms?

  Alt 21. Mai 2005, 15:45
Zitat von JayK:
HINWEIS: Die Unit mit dem anderen Formular muss im den selben namespace oben haben, sonst funzt das nicht (hat mich gestern 2 Stunden gekostet )
Wo siehst du denn Units in C#?
C# interessiert sich zum Glück einen feuchten *piep* um Dateinammen.
Hier mal ein absolut abstraktes Beispiel eines MdiContainers, der direkt im Konstruktor ein ChildForm anlegt.
Ob du es in eine Datei oder in 2 schreibst macht absolut keinen Unterschied. (bzw in .Net 2.0 oder schon in .Net 1.1 mit Chrome: mit partial classes in soviele Dateien wie du willst...)
Code:
using System.Windows.Forms;

namespace MainNameSpace
{
    public class MainForm : Form
    {
        public MainForm()
            : base()
        {
            IsMdiContainer = true;
            ChildNameSpace.Child myChildForm = new ChildNameSpace.Child();
            myChildForm.MdiParent = this;
            myChildForm.Show();
        }
    }
}

namespace ChildNameSpace
{
    public class Child : Form
    {}
}
Hast du den Namespace in der using clause wird er einfach auch darin versuchen unbekannte Typen aufzulösen.
möglich wäre also auch:
Code:
using System.Windows.Forms;
using ChildNameSpace;

namespace MainNameSpace
{
    public class MainForm : Form
    {
        public MainForm()
            : base()
        {
            IsMdiContainer = true;
            Child myChildForm = new Child();
            myChildForm.MdiParent = this;
            myChildForm.Show();
        }
    }
}


namespace ChildNameSpace
{
    public class Child : Form
    {}
}
oder in 2 Dateien:

Code:
using System.Windows.Forms;
using ChildNameSpace;

namespace MainNameSpace
{
    public class MainForm : Form
    {
        public MainForm()
            : base()
        {
            IsMdiContainer = true;
            Child myChildForm = new Child();
            myChildForm.MdiParent = this;
            myChildForm.Show();
        }
    }
}
Code:
using System.Windows.Forms;

namespace ChildNameSpace
{
    public class Child : Form
    {}
}
macht, wie gesagt, absolut keinen Unterschied.
Falls du #develop verwendest solltest du dir vielleicht die neueste Version asu dem repository ziehen. Darin ist Mathias' Help 2.0 AddIn enthalten. Der gibt dir die Möglichkeit die .Net Doku, wie im VS, direkt innerhalb der IDE zu haben.
  Mit Zitat antworten Zitat