Özel denetimler (Windows Forms .NET)

Windows Forms ile yeni denetimler oluşturabilir veya devralma yoluyla mevcut denetimleri değiştirebilirsiniz. Bu makalede, yeni denetim oluşturma yolları arasındaki farklar vurgulanır ve projeniz için belirli bir denetim türünü seçme hakkında bilgi sağlanır.

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 ve aşağıdaki özellikleri sağlar:

  • 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.

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

Kendi denetiminizi oluşturma

Oluşturabileceğiniz üç tür özel denetim vardır: kullanıcı denetimleri, genişletilmiş denetimler ve özel denetimler. Aşağıdaki tablo, hangi denetim türünü oluşturmanız gerektiğine karar vermenize yardımcı olur:

Eğer... Oluştur...
  • Birkaç Windows Forms denetiminin işlevselliğini tek bir yeniden kullanılabilir ünitede birleştirmek istiyorsunuz.
System.Windows.Forms.UserControl'den devralarak bir kullanıcı denetimi tasarlar.
  • İ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.
Belirli bir Windows Forms denetiminden devralarak denetimi genişletme.
  • Denetiminizin özel bir grafik gösterimini sağlamak istiyorsunuz.
  • Standart denetimler aracılığıyla kullanılamayabilecek özel işlevler uygulamanız gerekir.
System.Windows.Forms.Control'den devralarak özel bir denetim oluşturun.

Kullanıcı denetimleri

Kullanıcı denetimi, tüketiciye tek denetim olarak sunulan bir Windows Forms denetimleri koleksiyonudur. Bu tür denetimler bileşik denetim olarak adlandırılır. İçeren denetimler, kurucu denetimler olarak adlandırılır.

Kullanıcı denetimi, 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. Kullanıcı denetimi, sizin için fazladan geliştirme çabası olmadan çok sayıda varsayılan klavye işleme işlevi de sağlar.

Örneğin, bir kullanıcı denetimi bir veritabanındaki müşteri adresi verilerini görüntülemek için 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çerir. Veri bağlama özelliklerini seçmeli olarak kullanıma açabilir ve denetimin tamamını uygulamadan uygulamaya paketleyip yeniden kullanabilirsiniz.

Daha fazla bilgi için bkz . Kullanıcı denetimine genel bakış.

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.

Ö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 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 görsel olarak nasıl çizildiği denetlenen denetimin olayı için kod yazmanız gerekir. Ayrıca, denetiminiz için özelliğe özgü davranışlar da 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.

Ö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.

Aşağıdaki bilgiler güncel değildir ancak size yardımcı olabilir.