2009-04-01 28 views

cevap

35

değiştirme formu sonra hata derleme düzeltmek yerine Formunun UserControl miras.

+1

Sadece bu sorunun kendisiyle aynı sorunu çözerken buldum. Awesome ne kadar kolay. –

+0

Bunu VB.NET'te nasıl yaparım? Form, açıkça "Inherits" olmaksızın "Public Class TimeSheetGrid" olarak bildirilir. – ProfK

+0

Visual Studio 2012'de (en azından) ya da denediğim nispeten basit biçimlerle denedim, bu sadece kullanılabilir kodu kullanır ancak VS tasarımcısında denetimi açamazsınız. Hata yok, ancak tasarımcıyı açtığınızda, sadece, tüm iletişim öğelerinin listesini, dosya iletişim öğeleri/etc için nasıl yaptığına benzer şekilde gösterir. ama kontrol düzeni görmüyorsun. Bunu nasıl düzelteceğini bilen varsa söyleyin! –

8

Orada bir denetimde form gömmenin bir yolu da var: İşte VB kod:

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 

ben SO başka görevinden Bu kodu kazanılmış düşünüyorum, ama bu yüzden, nerede hatırlayamıyorum Bu kod snippet'iniz varsa üzgünüm!

+0

'dur. Aynı şey C# 'da da çalışır. – GWLlosa

+1

Sanırım C# 'da çalışmak için bazı şeyleri değiştirmek zorundasın, aksi takdirde derleyici kızardı ... – Joey

0

Bunu şimdi yapmanız gerektiğini söylemiyorsunuz ama gelecekte MEF'a bakabilirsiniz. Onun (örneğin, diğer şeylerin yanı sıra) seslendirdiği kompozit uygulamalar için bir çerçeve, elde etmeye çalıştığınız şey olabilir.

0

@Neil Barnwell'in çözümünü ek olarak kullandım. el .vbprog dosyasını düzenlenebilir ve formun "alt türünü" den "UserControl" değişti: Bu yerine bir formda değil, bir kullanıcı denetimi olarak göstermek için proje explorer simgesini verir

<SubType>UserControl</SubType> 

.

İlgili konular