Aracılığıyla paylaş


Özel Denetim Çeşitleri

.NET Framework ile yeni denetimler geliştirebilir ve uygulayabilirsiniz. Devralma yoluyla tanıdık kullanıcı denetiminin ve mevcut denetimlerin işlevselliğini genişletebilirsiniz. Kendi boyamalarını gerçekleştiren özel denetimler de yazabilirsiniz.

Oluşturulacak denetim türüne karar vermek kafa karıştırıcı olabilir. Bu konu, devralabileceğiniz çeşitli denetim türleri arasındaki farkları vurgular ve projeniz için belirli bir denetim türünü seçme hakkında bilgi sağlar.

Dekont

Web Forms'da kullanmak üzere denetim yazma hakkında bilgi için bkz . Özel ASP.NET Sunucu Denetimleri Geliştirme.

Temel Denetim Sınıfı

Control sınıfı, Windows Forms denetimleri için temel sınıftır. Windows Forms uygulamalarında görsel görüntüleme için gereken altyapıyı sağlar.

sınıfı, Control Windows Forms uygulamalarında görsel görüntü sağlamak için aşağıdaki görevleri gerçekleştirir:

  • Pencere tutamacını kullanıma sunar.

  • İleti yönlendirmeyi yönetir.

  • Fare ve klavye olayları ve diğer birçok kullanıcı arabirimi olayı sağlar.

  • Gelişmiş düzen özellikleri sağlar.

  • Görsel görüntülemeye özgü , BackColor, Heightve Widthgibi ForeColorbirçok özellik içerir.

  • Windows Forms denetiminin Microsoft® ActiveX® denetimi olarak davranması için gereken güvenlik ve iş parçacığı desteği sağlar.

Altyapının çoğu temel sınıf tarafından sağlandığından, kendi Windows Forms denetimlerinizi geliştirmek nispeten kolaydır.

Denetim Türleri

Windows Forms üç tür kullanıcı tanımlı denetimi destekler: bileşik, genişletilmiş ve özel. Aşağıdaki bölümlerde her denetim türü açıklanır ve projelerinizde kullanılacak türü seçmeye yönelik öneriler verebilirsiniz.

Bileşik Denetimler

Bileşik denetim, ortak bir kapsayıcıda kapsüllenmiş bir Windows Forms denetimleri koleksiyonudur. Bu tür denetimler bazen kullanıcı denetimi olarak adlandırılır. İçeren denetimler, kurucu denetimler olarak adlandırılır.

Bileşik denetim, kapsanan Windows Forms denetimlerinin her biriyle ilişkili tüm doğal işlevleri barındırarak özelliklerini seçmeli olarak kullanıma sunmanızı ve bağlamanızı sağlar. Bileşik denetim, sizin için fazladan geliştirme çabası olmadan çok sayıda varsayılan klavye işleme işlevi de sağlar.

Örneğin, veritabanındaki müşteri adresi verilerini görüntülemek için bileşik denetim oluşturulabilir. Bu denetim veritabanı alanlarını görüntülemek için bir DataGridView denetim, BindingSource bir veri kaynağına bağlamayı işlemek için bir denetim ve kayıtlar arasında hareket etmek için bir BindingNavigator denetim içerebilir. Veri bağlama özelliklerini seçmeli olarak kullanıma açabilir ve denetimin tamamını uygulamadan uygulamaya paketleyip yeniden kullanabilirsiniz. Bu tür bir bileşik denetim örneği için bkz . Nasıl yapılır: Windows Forms Denetimlerinde Öznitelikleri Uygulama.

Bileşik denetim yazmak için sınıfından türetin UserControl . Temel sınıf, UserControl alt denetimler için klavye yönlendirmesi sağlar ve alt denetimlerin grup olarak çalışmasını sağlar. Daha fazla bilgi için bkz . Bileşik Windows Forms Denetimi Geliştirme.

Öneri

Aşağıdakiler durumunda sınıfından UserControl devralın:

  • Birkaç Windows Forms denetiminin işlevselliğini tek bir yeniden kullanılabilir ünitede birleştirmek istiyorsunuz.

Genişletilmiş Denetimler

Var olan herhangi bir Windows Forms denetiminden devralınan bir denetim türetebilirsiniz. Bu yaklaşımla, bir Windows Forms denetiminin tüm doğal işlevlerini koruyabilir ve ardından özel özellikler, yöntemler veya diğer özellikler ekleyerek bu işlevselliği genişletebilirsiniz. Bu seçenekle, temel denetimin boya mantığını geçersiz kılabilir ve ardından görünümünü değiştirerek kullanıcı arabirimini genişletebilirsiniz.

Örneğin, bir kullanıcının kaç kez tıkladığını izleyen denetimden Button türetilmiş bir denetim oluşturabilirsiniz.

Bazı denetimlerde, temel sınıfın yöntemini geçersiz kılarak denetiminizin grafik kullanıcı arabirimine OnPaint özel bir görünüm de ekleyebilirsiniz. Tıklamaları izleyen genişletilmiş bir düğme için yöntemini geçersiz kılarak OnPaint temel uygulamasını OnPaintçağırabilir ve ardından denetimin Button istemci alanının bir köşesine tıklama sayısını çizebilirsiniz.

Öneri

Windows Forms denetiminden devralma durumu:

  • İhtiyacınız olan işlevlerin çoğu zaten mevcut bir Windows Forms denetimiyle aynıdır.

  • Özel bir grafik kullanıcı arabirimine ihtiyacınız yok veya mevcut bir denetim için yeni bir grafik kullanıcı arabirimi tasarlamak istiyorsunuz.

Özel Denetimler

Denetim oluşturmanın bir diğer yolu da öğesinden devralarak Controlen baştan önemli ölçüde bir denetim oluşturmaktır. Control sınıfı, fare ve klavye işleme olayları dahil olmak üzere denetimlerin gerektirdiği tüm temel işlevleri sağlar, ancak denetime özgü işlevler veya grafik arabirim sağlamaz.

sınıfından Control devralarak bir denetim oluşturmak, veya mevcut bir Windows Forms denetiminden UserControl devralmaktan çok daha fazla düşünme ve çaba gerektirir. Size çok fazla uygulama bırakılabildiğinden, denetiminiz bileşik veya genişletilmiş denetimden daha fazla esnekliğe sahip olabilir ve denetiminizi tam gereksinimlerinize uyacak şekilde uyarlayabilirsiniz.

Özel denetim uygulamak için denetimin OnPaint olayı için kod yazmanız ve ihtiyacınız olan özelliğe özgü kodlar yazmanız gerekir. Ayrıca yöntemini geçersiz kılabilir WndProc ve windows iletilerini doğrudan işleyebilirsiniz. Bu, denetim oluşturmanın en güçlü yoludur, ancak bu tekniği etkili bir şekilde kullanmak için Microsoft Win32® API'sini tanımanız gerekir.

Özel denetime örnek olarak, analog saatin görünümünü ve davranışını çoğaltan bir saat denetimi gösteriliyor. Özel boyama, saatin ellerinin bir iç Timer bileşenden gelen olaylara yanıt olarak hareket etmesini sağlamak için Tick çağrılır. Daha fazla bilgi için bkz . Nasıl yapılır: Basit Bir Windows Forms Denetimi Geliştirme.

Öneri

Aşağıdakiler durumunda sınıfından Control devralın:

  • Denetiminizin özel bir grafik gösterimini sağlamak istiyorsunuz.

  • Standart denetimler aracılığıyla kullanılamayan özel işlevler uygulamanız gerekir.

ActiveX Denetimleri

Windows Forms altyapısı, Windows Forms denetimlerini barındıracak şekilde iyileştirilmiş olsa da, ActiveX denetimlerini kullanmaya devam edebilirsiniz. Visual Studio'da bu görev için destek sağlanır. Daha fazla bilgi için bkz . Nasıl yapılır: Windows Forms'a ActiveX Denetimleri Ekleme.

Penceresiz Denetimler

Microsoft Visual Basic® 6.0 ve ActiveX teknolojileri penceresiz denetimleri destekler. Penceresiz denetimler Windows Forms'da desteklenmez.

Özel Tasarım Deneyimi

Özel bir tasarım zamanı deneyimi uygulamanız gerekiyorsa, kendi tasarımcınızı yazabilirsiniz. Bileşik denetimler için veya sınıflarından ParentControlDesigner özel tasarımcı sınıfınızı türetin DocumentDesigner . Genişletilmiş ve özel denetimler için özel tasarımcı sınıfınızı sınıfından türetin ControlDesigner .

Denetiminizi tasarımcınızla ilişkilendirmek için öğesini DesignerAttribute kullanın. Daha fazla bilgi için bkz . Tasarım Zamanı Desteğini Genişletme ve Nasıl Yapılır: Tasarım Zamanı Özelliklerinden Yararlanan Bir Windows Forms Denetimi Oluşturma.

Ayrıca bkz.