Bu C # programlama eğitiminde, ComboBoxes, Grids ve ListViews gibi gelişmiş kontrollere odaklanacağım ve bunları muhtemelen kullanacağınız yolu göstereceğim. Verilere dokunmuyorum ve daha sonraki bir eğiticiye kadar bağlayıcı değilim. Basit bir kontrolle başlayalım, bir ComboBox.
Bir Combo'nun kalbinde bir öğe koleksiyonu ve bunu doldurmanın en basit yolu ekranda bir combo bırakmak, özellikleri seçin (özellikler pencerelerini göremiyorsanız, üstteki Menü'de Görünüm'ü ve ardından Özellikler Penceresini tıklayın), öğeleri bulun ve üç noktaya tıklayın buton. Daha sonra dizeleri yazabilir, programı derleyebilir ve seçenekleri görmek için açılan düğmeyi aşağı çekebilirsiniz.
Şimdi programı durdurun ve birkaç sayı daha ekleyin: dört, beş.. On'a kadar. Çalıştırdığınızda, MaxDropDownItems'in varsayılan değeri olduğu için yalnızca 8'i görürsünüz. 20 veya 3'e ayarlamaktan çekinmeyin ve ardından ne yaptığını görmek için çalıştırın.
Açıldığında comboBox1 diyor ve düzenleyebilirsiniz. İstediğimiz bu değil. DropDownStyle özelliğini bulun ve DropDown'u DropDownList olarak değiştirin. (Bu bir Combo!). Şimdi metin yok ve düzenlenebilir değil. Numaralardan birini seçebilirsiniz, ancak her zaman boş açılır. Başlamak için bir numarayı nasıl seçeriz? Bu, tasarım zamanında ayarlayabileceğiniz bir özellik değil, ancak bu satırı eklemek bunu yapacaktır.
Bu satırı Form1 () yapıcısına ekleyin. Formun kodunu görüntülemeniz gerekir (Çözüm Gezgini'nde From1.cs dosyasını sağ tıklatın ve Kodu Görüntüle'yi tıklatın. InitializeComponent () öğesini bulun; ve hemen ardından bu satırı ekleyin.
Combo için DropDownStyle özelliğini Basit olarak ayarlar ve programı çalıştırırsanız hiçbir şey almazsınız. Seçmez, tıklamaz veya yanıt vermez. Neden? Çünkü tasarım zamanında alt germe kolunu tutmalı ve tüm kontrolü daha uzun yapmalısınız.
Örnek 2'de, ComboBox'ı combo olarak yeniden adlandırdım, açılan DropDownStyle'ı DropDown olarak değiştirdim ve btnAdd adlı bir Ekle düğmesi ekledim. Bir olay btnAdd_Click () olay işleyicisi oluşturmak için ekle düğmesini çift tıkladım ve bu olay satırını ekledim.
Şimdi programı çalıştırdığınızda yeni bir sayı yazın, Onbir deyin ve ekle'yi tıklayın. Olay işleyicisi yazdığınız metni (birleşik giriş) alır. Metin) ve Combo'nun öğeler koleksiyonuna ekler. Combo tıklayın ve şimdi Eleven yeni bir giriş var. Combo'ya yeni bir dize eklersiniz. Birini kaldırmak, kaldırmak istediğiniz dizenin dizinini bulmanız ve kaldırmanız gerektiğinden biraz daha karmaşıktır. Aşağıda gösterilen RemoveAt yöntemi bunu yapmak için bir toplama yöntemidir. Removeindex parametresinde hangi öğeyi belirtmeniz yeterlidir.
RemoveIndex konumundaki dizeyi kaldıracaktır. Birleşik girişte n öğe varsa geçerli değerler 0 ila n-1'dir. 10 madde için 0..9 değerleri.
Bu, metni bulamazsa -1 döndürür, aksi takdirde birleşik giriş listesindeki dizenin 0 tabanlı dizinini döndürür. Ayrıca, aramayı nereden başlatacağınızı belirtmenize izin veren aşırı yüklenmiş bir FindStringExact yöntemi de vardır, böylece kopyalarınız varsa ilkini vb. Atlayabilirsiniz. Bu, listedeki kopyaları kaldırmak için kullanışlı olabilir.
BtnAddMany_Click () öğesini tıklatmak, metni birleşik girişten temizler, sonra birleşik öğeler koleksiyonunun içeriğini temizler, ardından birleşik olarak çağırır. AddRange (değerler dizisindeki dizeleri eklemek için). Bunu yaptıktan sonra, birleşik girişin SelectedIndex değerini 0 olarak ayarlar. Bu, birleşik girişteki ilk öğeyi gösterir. Bir ComboBox içindeki öğelerin eklenmesi veya silinmesi durumunda, hangi öğenin seçildiğini takip etmek en iyisidir. SelectedIndex öğesini -1 olarak ayarlamak seçili öğeleri gizler.
Lots Ekle düğmesi listeyi temizler ve 10.000 sayı ekler. Kombo ekledim. BeginUpdate () ve combo, EndUpdate (), Windows'ta herhangi bir titremenin denetimi güncellemeye çalışmasını önlemek için döngüyü arar. Üç yaşındaki bilgisayarımda kombine 100.000 rakam eklemek birazdan fazla sürüyor.
Bu, bir tablo karmaşıklığı olmadan tablo verilerinin görüntülenmesi için kullanışlı bir kontroldür. Öğeleri büyük veya küçük simgeler, dikey bir listede simgeler listesi veya en yararlı şekilde bir ızgaradaki öğeler ve alt öğeler listesi olarak görüntüleyebilirsiniz ve burada yapacağımız şey budur.
ListView ListView bıraktıktan sonra column özelliği tıklatın ve 4 sütun ekleyin. Bunlar TownName, X, Y ve Pop olacak. Her ColumnHeader için metni ayarlayın. ListView'de (4'ün tamamını ekledikten sonra) başlıkları göremiyorsanız, ListView'in Görünüm Özelliğini Ayrıntılar olarak ayarlayın. Bu örneğin kodunu görüntülerseniz, Windows Form Designer kodu yazdığı yere gidin ve ListView'i oluşturan kodu gördüğünüz bölgeyi genişletin. Sistemin nasıl çalıştığını görmek yararlıdır ve bu kodu kopyalayıp kendiniz kullanabilirsiniz.
İmleci başlığın üzerine getirip sürükleyerek her sütun için genişliği manuel olarak ayarlayabilirsiniz. Veya form tasarımcısı bölgesini genişlettikten sonra görünen kodda yapabilirsiniz. Bunun gibi bir kod görmelisiniz:
Popülasyon sütunu için, koddaki değişiklikler tasarımcıya yansıtılır veya tersi de geçerlidir. Kilitli özelliğini true olarak ayarlasanız bile bunun yalnızca tasarımcıyı etkilediğini ve çalışma zamanında sütunları yeniden boyutlandırabileceğinizi unutmayın.
ListViews ayrıca bir dizi dinamik özelliğe sahiptir. (Dinamik Özellikler] 'e tıklayın ve istediğiniz özelliği işaretleyin. Bir özelliği dinamik olarak ayarladığınızda, bir XML .config dosyası oluşturur ve onu Solution Explorer'a ekler.
Tasarım zamanında değişiklik yapmak bir şeydir, ancak program çalışırken bunu gerçekten yapmamız gerekir. ListView 0 veya daha fazla öğeden oluşur. Her öğenin (ListViewItem) bir text özelliği ve bir SubItems koleksiyonu vardır. İlk sütun Öğe metnini gösterir, sonraki sütun Alt Öğe [0] .text ve ardından Alt Öğe [1] .text vb. Gösterir.
Şehir Adı için bir satır ve bir düzenleme kutusu eklemek için bir düğme ekledim. Kutuya herhangi bir ad girin ve Satır Ekle'yi tıklayın. Bu, ilk sütuna ve sonraki üç sütuna yerleştirilen kasaba adı ile ListView'e yeni bir satır ekler (Alt öğeler [0..2]), bu dizeler eklenerek rastgele sayılarla (dizelere dönüştürülür) doldurulur onlar.
Şimdi ListView Multiselect özelliğini false olarak ayarlayın. Bir seferde yalnızca bir öğe seçmek istiyoruz, ancak bir seferde daha fazlasını kaldırmak istiyorsanız, tersi döngüye girmeniz dışında benzerdir. (Normal sırayla döngü yaparsanız ve öğeleri silerseniz, sonraki öğeler seçilen dizinlerle senkronize olmaz).
Sağ tıklama menüsü henüz çalışmıyor çünkü üzerinde görüntülenecek menü öğemiz yok. Bu yüzden PopupMenu'ya (formun altında) sağ tıklayın ve formun üstünde normal Menü düzenleyicisinin göründüğü bağlamda İçerik Menüsü görünür. Tıklayın ve burada yazın yazın, Öğeyi Kaldır yazın. Özellikler penceresinde bir MenuItem gösterilecek ve mniRemove olarak yeniden adlandırılacaktır. Bu menü öğesini çift tıklayın, menuItem1_Click olay işleyicisi kod işlevini almalısınız. Bu kodu şu şekilde görünecek şekilde ekleyin.
Öğeyi Kaldır'ı gözden kaçırırsanız, Form Tasarımcısı'ndaki formun altında kendi başına PopupMenu denetimini tıklatmanız yeterlidir. Bu onu tekrar görülebilecek.
Ancak, çalıştırır ve bir öğe eklemez ve seçmezseniz, menüyü sağ tıklatıp aldığınızda Öğeyi Kaldır'ı tıklattığınızda, seçili öğe olmadığı için bir istisna verecektir. Bu kötü programlama, işte bunu nasıl düzeltebileceğiniz. Pop-up etkinliğini çift tıklayın ve bu kod satırını ekleyin.
Bir DataGridView, C # ile ücretsiz olarak sağlanan en karmaşık ve en kullanışlı bileşendir. Her iki veri kaynağıyla (yani bir veritabanındaki veriler) ve içermez (yani programlı olarak eklediğiniz veriler) ile çalışır. Bu öğreticinin geri kalanı için Veri Kaynakları olmadan kullanarak göstereceğim, Daha basit görüntü ihtiyaçları için düz bir ListView daha uygun bulabilirsiniz.
Daha eski bir DataGrid kontrolü kullandıysanız, bu steroidlerden sadece bir tanesidir: size daha yerleşik sütun türleri verir, dahili ve harici veriler, ekranın (ve olayların) daha fazla özelleştirilmesi ve dondurma satırları ile hücre kullanımı üzerinde daha fazla kontrol sağlar ve sütunlar.
Izgara verileri içeren formlar tasarlarken, farklı sütun türlerini belirtmek en yaygın olanıdır. Bir sütunda onay kutuları, başka bir sütunda salt okunur veya düzenlenebilir metin ve kurs numaraları olabilir. Bu sütun türleri de genellikle ondalık noktalar hizalanacak şekilde genellikle sağa hizalanmış sayılarla farklı şekilde hizalanır. Sütun düzeyinde Düğme, onay kutusu, ComboBox, Resim, TextBox ve Bağlantılar arasından seçim yapabilirsiniz. bunlar yeterli değilse kendi özel tiplerinizi savunabilirsiniz.
Sütun eklemenin en kolay yolu IDE'de tasarım yapmaktır. Daha önce de gördüğümüz gibi, bu sadece sizin için kod yazar ve birkaç kez yaptığınızda kodu kendiniz eklemeyi tercih edebilirsiniz. Bunu birkaç kez yaptıktan sonra, programlı olarak nasıl yapılacağı konusunda size fikir verir.
Bazı sütunlar ekleyerek başlayalım, forma bir DataGridView bırakın ve sağ üst köşedeki küçük oku tıklayın. Ardından Sütun Ekle'yi tıklayın. Bunu üç kez yapın. Sütunun adını, üst sütunda görüntülenecek metni ayarladığınız bir Sütun Ekle iletişim kutusu açılır ve türünü seçmenizi sağlar. İlk sütun Adınız ve varsayılan Metin Kutusu'dur (dataGridViewTextBoxColumn). Üstbilgi Metnini de adınıza ayarlayın. İkinci sütunu Yaş yapın ve bir ComboBox kullanın. Üçüncü sütuna İzin Verilir ve bir CheckBox Sütunudur.
Her üçünü de ekledikten sonra, ortada birleşik (Yaş) ve İzin Verilen sütununda bir onay kutusu bulunan üç sütunlu bir satır görmelisiniz. DataGridView'ı tıklatırsanız, özellik denetçisinde sütunları bulmalı ve (koleksiyon) öğesini tıklatmalısınız. Bu, her sütun için ayrı hücre renkleri, ipucu metni, genişlik, minimum genişlik vb. Gibi özellikleri ayarlayabileceğiniz bir iletişim kutusu açar. Derleyip çalıştırırsanız, sütun genişliklerini ve çalışma zamanını değiştirebileceğinizi fark edeceksiniz. Ana DataGridView için özellik denetçisinde, bunu önlemek için AllowUser öğesini resizeColumns öğesini false olarak ayarlayabilirsiniz.
DataGridView denetimine kod satırları ekleyeceğiz ve örnekler dosyasındaki ex3.cs dosyasında bu kod var. DataGridView ile forma bir TextEdit kutusu, bir ComboBox ve bir düğme ekleyerek başlayarak. DataGridView özelliğini AllowUserto AddRows öğesini false olarak ayarlayın. Ben de etiketleri kullanın ve combobox cbAges, düğme btnAddRow ve TextBox tbName denir. Ayrıca form için bir Kapat Düğmesi ekledim ve btnClose_Click olay işleyicisi iskeleti oluşturmak için çift tıkladım. Orada Close () kelimesini eklemek bu işi yapar.
Varsayılan olarak Satır Ekle düğmesi etkin özelliği başlangıçta false olarak ayarlanmıştır. Hem Name TextEdit kutusunda hem de ComboBox'ta Metin yoksa DataGridView öğesine herhangi bir satır eklemek istemiyoruz. CheckAddButton yöntemini oluşturdum ve daha sonra, olayları görüntülerken Özellikler'de Bırak sözcüğünün yanındaki çift tıklatarak Ad Metni düzenleme kutusu için bir Leave olay işleyicisi oluşturdum. Özellikler kutusu bunu yukarıdaki resimde göstermektedir. Varsayılan olarak Özellikler kutusu özellikleri gösterir ancak yıldırım düğmesini tıklayarak olay işleyicileri görebilirsiniz.
Bunun yerine TextChanged olayını kullanmış olabilirsiniz, ancak bu CheckAddButton () öğesini çağırır kontrol bırakıldığında değil, başka bir kontrol kazanıldığında odaklanır. Ages Combo'da TextChanged olayını kullandım, ancak yeni bir olay işleyici oluşturmak için çift tıklama yerine tbName_Leave olay işleyicisini seçtim.
Bazı olaylar ekstra parametreler sağladığı için tüm olaylar uyumlu değildir, ancak önceden oluşturulmuş bir işleyici görüyorsanız evet kullanabilirsiniz. Bu çoğunlukla bir tercih meselesidir, olduğunuz her kontrol için ayrı bir olay işleyiciniz olabilir ortak bir olay imzası olduğunda olay işleyicilerini (yaptığım gibi) kullanmak veya paylaşmak, yani parametreler aynı.
DataGridView bileşeni kısaca dGView için yeniden adlandırdı ve bir olay işleyicisi iskelet oluşturmak için AddRow çift tıklattı. Aşağıdaki bu kod yeni bir boş satır ekler, satırlar dizinini elde eder (yeni eklendiği için RowCount-1'dir ve RowCount 0'dır. tabanlı) ve ardından bu satıra dizini üzerinden erişir ve bu satırdaki hücrelerinizdeki Adınız ve Yaş.
Bir form tasarlarken, kaplar ve kontroller ve hangi kontrol gruplarının bir arada tutulması gerektiğini düşünmelisiniz. Her neyse Batı kültürlerinde insanlar Sol Soldan Alt Sağa okur, bu şekilde okumayı kolaylaştırırlar.
Kapsayıcı, başka denetimler içerebilen denetimlerden herhangi biridir. Araç Kutusunda bulunanlar Panel, FlowLayoutpanel, SplitContainer, TabControl ve TableLayoutPanel'i içerir. Araç kutusunu göremiyorsanız, Görünüm menüsünü kullanın ve onu bulun. Kaplar denetimleri bir arada tutar ve kabı taşır veya yeniden boyutlandırırsanız, denetimlerin konumunu etkileyecektir. Denetimleri Form Tasarımcısı'ndaki kapsayıcıya taşıdığınızda, Kapsayıcı artık sorumlu olduğunu anlayacaktır.
Panel bir GroupBox'a benzer ancak bir GroupBox kaydırma yapamaz ancak bir resim yazısı görüntüleyebilir ve varsayılan olarak bir kenarlığı vardır. Paneller kenarlıklara sahip olabilir, ancak varsayılan olarak yoktur. GroupBoxes kullanın çünkü onlar güzel görünüyor ve bu önemlidir çünkü:
Paneller kapları gruplamak için de kullanışlıdır, bu nedenle Panelde iki veya daha fazla GroupBox'ınız olabilir.
İşte bir ipucu konteynerlerle çalışmak için. Bir form üzerine bir Bölünmüş Kap bırakın. Önce sol paneli sonra da sağ paneli tıklayın. Şimdi SplitContainer'ı formdan kaldırmayı deneyin. Panellerden birine sağ tıklayıp ardından SplitContainer1 Seç'e tıklayıncaya kadar zor. Tümü seçildikten sonra silebilirsiniz. Tüm kontroller ve kaplar için geçerli olan başka bir yol da Esc Tuşuna basın ebeveyn seçmek için.
Kaplar iç içe de yerleştirilebilir. Sadece küçük olanı daha büyük olanın üstüne sürükleyin ve kısa bir süre için birinin diğerinin içinde olduğunu göstermek için ince bir dikey çizgi göreceksiniz. Üst konteyneri sürüklediğinizde çocuk onunla birlikte taşınır. Örnek 5 bunu göstermektedir. Varsayılan olarak açık kahverengi panel kabın içinde değildir, bu nedenle taşı düğmesini tıklattığınızda GroupBox taşınır ancak panel çalışmaz. Şimdi paneli tamamen Groupbox içinde olacak şekilde GroupBox'ın üzerine sürükleyin. Bu kez derleyip Çalıştırdığınızda, Taşı düğmesini tıklatmak her ikisini birlikte taşır.
Bir TableLayoutpanel ilginç bir kapsayıcıdır. Her hücrenin sadece bir kontrol içerdiği 2D hücre ızgarası gibi organize edilmiş bir tablo yapısıdır. Bir hücrede birden fazla denetime sahip olamazsınız. Daha fazla denetim eklendiğinde veya büyümeyse bile tablonun nasıl büyüyeceğini belirtebilirsiniz. Hücreler sütunlara veya satırlara yayılabileceğinden HTML tablosunda modellenmiş gibi görünür. Kaptaki alt denetimlerin sabitleme davranışı bile Kenar Boşluğu ve Dolgu ayarlarına bağlıdır. Bir sonraki sayfada çapalar hakkında daha fazla şey göreceğiz.
Örnek Ex6.cs'de, temel bir İki Sütun Tablosu ile başladım ve Kontrol ve Satır Stilleri iletişim kutusu aracılığıyla belirledim (kontrolü seçin ve küçük tıklayın görevlerin listesini görmek ve sonuncuyu tıklatmak için sağ üstte bulunan sağ işaret üçgeni) sol sütunun% 40 ve sağ sütunun% 60 olduğunu Genişlik. Sütun genişliklerini yüzde cinsinden mutlak piksel terimleriyle belirtmenize izin verir veya Otomatik Boyutlandırmasına izin verebilirsiniz. Bu iletişim kutusuna ulaşmanın daha hızlı bir yolu, Özellikler Penceresinde Sütunların yanındaki Koleksiyon'u tıklamaktır.
Bir AddRow düğmesi ekledim ve varsayılan AddRows değeri ile GrowStyle özelliğini bıraktım. Tablo dolduğunda başka bir satır ekler. Alternatif olarak değerlerini AddColumns ve FixedSize olarak ayarlayabilirsiniz, böylece artık büyüyemez. Ex6'da, Denetim Ekle düğmesini tıklattığınızda, AddLabel () yöntemini üç kez ve AddCheckBox () öğesini bir kez çağırır. Her yöntem, denetimin bir örneğini oluşturur ve sonra tblPanel'i çağırır. Kontroller. Ekle () 2. kontrol eklendikten sonra üçüncü kontroller tablonun büyümesine neden olur. Resim, Kontrol Ekle düğmesine bir kez tıklandıktan sonra görüntüyü gösterir.
AddCheckbox () ve AddLabel () yöntemlerinde varsayılan değerlerin nereden geldiğini merak ediyorsanız, denetim başlangıçta tasarımcıdaki tabloya manuel olarak eklenir ve ardından onu oluşturmak ve başlatmak için kod bu içinden kopyalanır bölgesi. Başlatma kodunu, aşağıdaki Bölge'nin solundaki + işaretini tıkladıktan sonra InitializeComponent yöntem çağrısında bulabilirsiniz:
İkinci ve sonraki kontrolleri, hatta farklı türdeki kontrolleri seçtiğinizde, üst karakter tuşunu basılı tutarak aynı anda birden fazla kontrol seçebilirsiniz. Özellikler penceresi yalnızca her ikisinde de ortak olan özellikleri gösterir, böylece tümünü aynı boyut, renk ve metin alanlarına vb. Ayarlayabilirsiniz. Aynı olay işleyicileri bile birden fazla kontrole atanabilir.
Kullanıma bağlı olarak, bazı formlar genellikle kullanıcı tarafından yeniden boyutlandırılır. Hiçbir şey bir formu yeniden boyutlandırmaktan ve kontrollerin aynı konumda kalmasından daha kötü olamaz. Tüm kontroller, ekli bir kenar hareket ettirildiğinde kontrolün hareket etmesini veya gerilmesini sağlamak için bunları 4 kenara "tutturmanıza" izin veren ankrajlara sahiptir. Bu, bir form sağ kenardan uzatıldığında aşağıdaki davranışa yol açar:
Geleneksel olarak sağ altta bulunan Kapat gibi düğmeler için gereken davranış 3'tür. ListViews ve DataGridViews, sütun sayısı formu aşmak için yeterliyse ve kaydırılması gerekiyorsa 2 ile en iyisidir). Üst ve Sol ankrajlar varsayılan değerdir. Özellik Penceresi İngiltere Bayrağına benzeyen şık küçük bir editör içerir. Yukarıdaki resimde gösterildiği gibi uygun ankrajı ayarlamak veya temizlemek için çubuklardan herhangi birine (iki yatay ve iki dikey) tıklamanız yeterlidir.
Çok fazla bahsetmeyen bir özellik Tag özelliğidir ve yine de inanılmaz derecede yararlı olabilir. Özellikler Penceresinde yalnızca metin atayabilirsiniz ancak kodunuzda Nesneden gelen herhangi bir değere sahip olabilirsiniz.
Sadece bir ListView özelliklerinden yalnızca bazılarını gösterirken tüm bir nesneyi tutmak için Tag kullandım. Örneğin, yalnızca Müşteri Özeti listesinde bir Müşteri Adı ve numarası göstermek isteyebilirsiniz. Ancak, seçilen müşteriyi sağ tıklayın ve ardından müşterinin tüm ayrıntılarını içeren bir form açın. Hafızadaki tüm müşterinin ayrıntılarını okuyarak ve Etiketteki Müşteri Sınıfı Nesnesine bir başvuru atayarak müşteri listesini oluştururken bu kolaydır. Tüm denetimlerin bir Etiketi vardır.
TabControl, birden fazla sekmeye sahip olarak form alanından tasarruf etmenin kullanışlı bir yoludur. Her sekmenin bir simgesi veya metni olabilir ve herhangi bir sekmeyi seçebilir ve denetimlerini görüntüleyebilirsiniz. TabControl bir kapsayıcıdır, ancak yalnızca TabPages içerir. Her TabPage, kendisine normal kontroller eklenebilen bir kaptır.
Örneğin x7.cs'de, ilk sekmesinde üç düğmeli Denetimler adında ve üzerinde bir onay kutusu bulunan iki sekmeli sayfa paneli oluşturdum. İkinci sekme sayfası Günlükler olarak etiketlenir ve bir düğmeyi tıklatmayı veya bir onay kutusunu açmayı içeren tüm günlüğe kaydedilen işlemleri görüntülemek için kullanılır. Her düğme tıklamasını vb. Günlüğe kaydetmek için Log () adlı bir yöntem çağrılır. Sağlanan dizeyi bir ListBox öğesine ekler.
Ayrıca her zamanki gibi TabControl iki sağ tıklama açılır menüler öğeleri ekledim. İlk olarak forma bir ContextMenuStrip ekleyin ve TabControl'ün ContextStripMenu özelliğinde ayarlayın. İki menü seçeneği Yeni Sayfa Ekle ve Bu Sayfayı Kaldır'dır. Ancak, Sayfa kaldırmayı kısıtladım, böylece yalnızca yeni eklenen sekme sayfaları kaldırılabilir, orijinal iki sayfa kaldırılamaz.
Bu kolaydır, sadece yeni bir sekme sayfası oluşturun, Sekme için bir Metin başlığı verin ve ardından Sekmeler TabControl'ün TabPages koleksiyonuna ekleyin
Bir sayfayı kaldırmak sadece TabPages'ı aramakla ilgilidir. Sekmeleri kullanarak RemoveAt () öğesini kaldırın. Seçili Sekmeyi almak için SelectedIndex.
Bu eğitimde, daha karmaşık kontrollerin nasıl çalıştığını ve bunların nasıl kullanılacağını gördük. Bir sonraki derste GUI temasına devam edeceğim ve arka plandaki iş parçacığına bakacağım ve nasıl kullanılacağını göstereceğim.