2009-04-01 7 views

Antwort

35

Ändern der Form von Usercontrol statt Formular erben, dann eventuelle Fehler beheben zu kompilieren.

+1

Gerade diese Antwort gefunden, während ich das selbe Problem selbst anwende. Super, wie einfach das ist. –

+0

Wie würde ich das in VB.NET tun? Das Formular wird einfach als "Public Class TimeSheetGrid" deklariert, ohne explizite "Inherits". – ProfK

+0

In Visual Studio 2012 (mindestens) oder mit den relativ einfachen Formen, die ich ausprobiert habe, macht dies nur verwendbaren Code, aber Sie können das Steuerelement im VS-Designer nicht öffnen. Keine Fehler, aber beim Öffnen zeigt der Designer lediglich eine Liste aller Steuerelemente, ähnlich wie bei Dateidialogelementen/etc. aber Sie sehen kein Kontroll-Layout. Wenn jemand weiß, wie das zu beheben ist, sag es! –

8

Es gibt auch eine Möglichkeit, ein Formular in einem Steuerelement einzubetten: Hier ist der Code in VB:

Public Shared Sub ShowFormInControl(ByRef ctl As Control, ByRef frm As Form) 
    If ctl IsNot Nothing AndAlso frm IsNot Nothing Then 
     frm.TopLevel = False 
     frm.FormBorderStyle = FormBorderStyle.None 
     frm.Dock = DockStyle.Fill 
     frm.Visible = True 
     ctl.Controls.Add(frm) 
    End If 
End Sub 

Ich denke, dass ich diesen Code auf SO aus einem anderen Post erworben, aber ich kann mich nicht erinnern, wo, so Entschuldigung, wenn dies Ihr Code-Snippet ist!

+0

Das gleiche funktioniert natürlich in C#. – GWLlosa

+1

Ich denke, du müsstest einige Dinge ändern, damit es in C# funktioniert, sonst wäre der Compiler verärgert ... – Joey

0

Nicht zu sagen, dass Sie dies jetzt tun sollten, aber in Zukunft können Sie einen Blick auf MEF werfen. Es ist ein Framework für (unter anderem) den Aufbau von Composite-Anwendungen, die so klingen, als könnten Sie das erreichen, was Sie erreichen wollen.

0

Ich benutzte @Neil Barnwells Lösung, mit einem Zusatz. ich manuell bearbeiten die .vbprog Datei und verändern das „SubType“ des Formulars auf „Usercontrol“:

<SubType>UserControl</SubType> 

Dies auf das Symbol im Projekt-Explorer kann als User Control zeigen, sondern als eine Form.

Verwandte Themen