2013-02-22 40 views
5

C# winforms tabanlı bir uygulamada başka bir sekme sayfasında yansıtmam gereken bir açılan kutum var.Farklı bir sekmede bir açılan kutunun metnini değiştirme

Açılır listeden farklı bir öğe seçtiğinizde için mükemmel çalışma kodum var. Ne yazık ki, henüz tıklanmayan bir sekmenin Text'u değiştirdiğimde aslında hiçbir şey olmuyor.

Her sekmeyi tıklatırsam her şey beklendiği gibi çalışır.

Şimdi bunu, ilk başta gerçekleşen bir tür başlatma eksikliğiyle karşılaşıyorum. Bu yüzden kurucumdaki her sekmeyi seçmeyi denedim.

tabControlDataSource.SelectedIndex = 0; 
tabControlDataSource.SelectedIndex = 1; 
// etc 

Ancak bu çalışmaz.

Ayrıca, tabControlDataSource.SelectTab(1) numaralı telefonu aramayı denedim ve hala çalışmıyor.

Sekmeyi "başlangıç" durumuna nasıl zorlayabileceğimi bilen var mı?

+0

bir saat olamaz bir kez benzer bir sorun vardı 'tabControl.SelectedTab = tabControl.TabPages [" tabName "]'. Bu nasıl olsa tabControlDataSource.SelectTab (1) 'dan farklı görmüyorum. – Otiel

cevap

3

Tamam, genellikle bir saat boyunca mücadele ettikten sonra soruları gönderiyorum ve kısa bir süre sonra çözümü buluyorum.

TabPages tembelleştirilmiştir. Böylece, ilk kez görünür hale gelinceye kadar tam olarak başlamazlar.

Yani benim kurucusuna bu kodu eklendi:

 tabControlDataSource.TabPages[0].Show(); 
     tabControlDataSource.TabPages[1].Show(); 
     tabControlDataSource.TabPages[2].Show(); 

ancak bu işe yaramadı :(

yapıcı Yani iyi yer olmayabilir Ancak, aklıma geldi. aşağıdaki gibi ben Shown için bir olay işleyicisi oluşturuldu:!

private void MainForm_Shown(object sender, EventArgs e) 
    { 
     tabControlDataSource.TabPages[0].Show(); 
     tabControlDataSource.TabPages[1].Show(); 
     tabControlDataSource.TabPages[2].Show(); 
    } 

Ve şimdi her şey çalışıyor

2

Belki de bu durumda bir "tembel" senkronizasyonunu (başlatma) kullanabilirsiniz. Hızlı ve güçlü fikirler: içeriği güncellemek için zamanlayıcıyı yoklama (sekme sayfasını gördükten sonra güncelleyecektir), ikinci sekmede hiçbir bağımlılık yok (ikinci sekme içeriğini güncellemek için açılan kutucuk için hiçbir etkinlik yok, ilk sekmeden orijinal combobox kullan veya daha çok içeriğinin altında yatan içerik var Her iki comboboxes sınıf, vb), sekme görünür hale "ilklendirmeleri" (hangi an en ayrıca) ikinci combobox init için erişilebilir ... lütfen

, hiçbir şekilde = D

+1

Evet, bir saat oldu, benden daha uzakta soyutlanmış hiçbir şeyim olmadığı eski iyi bir Win32 için çok daha fazla kullanıyorum;) – Goz