2010-03-24 20 views
5

Küçük bir sekmeli C# Form yapıyorum ve her bir sekme sayfasının bazı genel özelliklere, özellikle bir OK düğmesine ve bir hata mesajına sahip olmasını ve belirli bir alana sahip olmasını istiyorum form alanları.C# içinde özel bir TabPage kontrolü oluşturma #

Başkası benzer bir şey yaptı mı ve ona nasıl yaklaştın?

+0

Her Sayfada Tamam düğmesi var mı? –

+1

düzgün bir cevap değil, ama ben orijinal tabcontrolpage uzanan bazı test yapmak düşünüyorum, ihtiyaç duyduğunuz ortak özellikleri ekleyerek – michele

cevap

7

TabControl/TabPage'i genişletmeden bu işlemi yapmak çok kolaydır.

Bir UserControl tanımlayın ve her bir tabPage'de istediğiniz ortak öğeleri ekleyin.

Formda: devam edin ve her TabPage için istediğiniz TabPage'e özgü denetimleri tasarlayın: UserControl eklendikten sonra ortak denetimlerle görsel olarak üst üste gelmeyeceklerinden emin olun. Ana Şekli Load olayı olarak

böyle bir şey yapmak:

// form scoped variable to hold a referece to the current UserControl 
    private UserControl1 currentUserControl; 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     foreach(TabPage theTabPage in tabControl1.TabPages) 
     { 
      currentUserControl = new UserControl1(); 

      theTabPage.Margin = new Padding(0); 
      theTabPage.Padding = new Padding(0); 

      theTabPage.Controls.Add(currentUserControl); 

      currentUserControl.Location = new Point(0,0); 

      currentUserControl.Dock = DockStyle.Fill; 

      currentUserControl.SendToBack(); 
     } 
    } 

'SendToBack gerçekten burada gerekli değildir o 'sigorta' olduğu ile UserControl' olsa Tamam düğmesi ve Bir hata iletisi için TextBox, her bir TabPage'e atadığınız bireysel kontrollerin arkasına yerleştirilir.

+1

Aşağı oy kullananlarınız: neden bu çözümü sevmiyorum anlayış çok takdir edilecektir. teşekkürler, – BillW

+0

@BillW Aslında, bazı eşek bunu spam olarak işaretledi. Şimdi, bunun iyi bir cevap olup olmadığını bilmiyorum ama spam olmadığını biliyorum. Yani, +1, rep kaybını telafi etmenize ve cevap verdiğiniz rütbeyi etkisiz hale getirmenize yardımcı olur. –

+0

Merhaba BillW, Bu çözümü beğendim. Biliyorum ki bu, kontrolü "görmek" açısından tasarımcı desteğini yitirdiğimi, ama bence işi güzelce yapıyor, teşekkürler. –

2

Çeşitli fikirler:

  • TabPanel dışında ortak denetimleri tutun;
  • TabPage/TabControl'ü genişletme
  • Ortak düğmelerle temel bir UserControl oluşturun ve ondan gelen kullanıcı denetimlerini yapın. Sonra TabPage başına bir devralınan usercontrol yerleştirin.