2009-05-04 27 views
5

Tamam ben şöyle onları gömülü Formlar ile sekmeler kullanan büyük REZİL uygulaması varsa ->Gömülü Formu

public static void ShowFormInContainerControl(Control ctl, Form frm) 
    { 
     frm.TopLevel = false; 
     frm.FormBorderStyle = FormBorderStyle.None; 
     frm.Dock = DockStyle.Fill; 
     frm.Visible = true; 
     ctl.Controls.Add(frm); 
    } 

Sonra Form Load olayı aşağıda çağrı Veli Formunun ->

// Embedd the child form in the this Parent 
     WinFormCustomHandling.ShowFormInContainerControl(pnlModuleHost, _frmWWCModuleHost); 

Bu

benim önceki soruya yanıt olarak bana HERE verildi. Bunda ilerlemiştir gibi

Ben gömülü Formlar çok katmanlı gerçekleşmesi ve Kullanıcı Kontrolleri gelmeyip almak için bekleyen bir felaket olduğunu nausiating duygu almaya devam. Kullanıcı kontrolleri kullanıp kullanmayla ilgili formları kullanmam konusunda bana somut tavsiyelerde bulunabilir mi?

buna ilham için benim önceki soruya bakın. HERE

Ayrıca, geçerli katıştırılmış form düzenimin eylemde nasıl göründüğünün bir ekran görüntüsü de HERE bulunabilir.

cevap

2

bakmak düşünüyorum Ben bir UserControl kullanacağım, onun sadece daha basit olduğunu düşünürsün, tasarımcıda neler olup bittiğini görebiliyorsun (eğer istersen), Formun bir kap içinde bir görünüm olarak kullanacak olursan asla ihtiyacın olmayacak şeyler var. .

senin yöntemine bu karşılaştırın:

public static void DockControl(this Control control, UserControl userControl) 
      { 
       userControl.Dock = DockStyle.Fill; 
       control.Controls.Clear(); 
       control.Controls.Add(userControl); 
      } 
3

Benim bakış açısı muhtemelen sen çok fazla önemli değil seçecektir hangi yönde olduğunu Teşekkür ederiz. Kullanıcı kontrolleri ile gitmeyi tercih ederim çünkü daha standart bir yaklaşım ve ileriye doğru daha fazla esneklik sağlamanıza olanak tanıyor. Örneğin, müşteriniz size gelirse ve iki sekmeyi tek bir sekmede birleştirmek istediklerini söylerse ne olur? Kullanıcı denetimleri şartlar yeniden değiştirdiğinizde gelecek ay tek forma kontrolleri birleştirerek ve sonra geri değişen etrafında monkeying olmadan tek sekme üzerine bu iki denetimleri plop olanak sağlayacak.

Sen anladığım kadarıyla, birbirleriyle iletişim için gereken birçok eserine sahip geniş, karmaşık uygulama var. Bence kendinize sormanız gereken soru "Formlar veya Kullanıcı Kontrolleri" değil. Kendinize sormanız gereken soru, "Bu uygulama için doğru mimari mi?"

Ben bir eklenti tipi mimarisi olan birçok hareketli parçalar için daha uygun olabilir kurulan bir tasarım ... Yoksa Microsoft'un Patterns ve Uygulamaları Kompozit Uygulama Bloğu (CAB)

+0

İlginç, size "eklentisi tipi" mimarisi ile ne demek açıklamak mümkün olurdu? Eğer formları DO ve farklı değiştirilebilir UC Hadi şu ana işlevleri gerçekleştirmek için ne soyutlayarak mu kastediyorsunuz? –

+0

İşte genişletilebilir mimarisi etrafında başvurunuzu tasarımına büyük bir yazıdır. http://www.code-magazine.com/Article.aspx?quickid=0801041 – Utensil