Nasıl yapılır: Mevcut Windows Formları Denetimlerinden Devralma
Varolan bir denetimin işlevselliğini genişletmek istiyorsanız, devralma yoluyla var olan bir denetimden türetilmiş bir denetim oluşturabilirsiniz. Var olan bir denetimden devralınırken, bu denetimin tüm işlevselliğini ve görsel özelliklerini devralırsınız. Örneğin, öğesinden devralınan bir denetim oluşturuyorsanız Button , yeni denetiminiz bir standart denetim gibi görünür ve çalışır Button . Daha sonra özel yöntemlerin ve özelliklerin uygulanmasıyla yeni denetiminizin işlevselliğini genişletebilir veya değiştirebilirsiniz. Bazı denetimlerde, kendi metodunu geçersiz kılarak devralınmış denetiminizin görsel görünümünü de değiştirebilirsiniz OnPaint .
Devralınan bir denetim oluşturmak için
Visual Studio, yeni bir Windows Forms uygulama projesi oluşturun.
Project menüsünden yeni öğe ekle' yi seçin.
Yeni Öğe Ekle iletişim kutusu görünür.
Yeni öğe Ekle Iletişim kutusunda özel denetim ' eçift tıklayın.
Projenize yeni bir özel denetim eklenir.
Şunu kullanıyorsanız:
- Visual Basic, Çözüm Gezginiüst kısmında tüm dosyaları göster' e tıklayın. CustomControl1. vb öğesini genişletin ve ardından kod düzenleyicisinde CustomControl1. Designer. vb dosyasını açın.
- C#, kod Düzenleyicisi 'nde CustomControl1. cs ' yi açın.
Öğesinden devralan sınıf bildirimini bulun Control .
Taban sınıfını, devralması istediğiniz denetim olarak değiştirin.
Örneğin, öğesinden devralma yapmak istiyorsanız Button , sınıf bildirimini aşağıdaki şekilde değiştirin:
Partial Class CustomControl1 Inherits System.Windows.Forms.Buttonpublic partial class CustomControl1 : System.Windows.Forms.ButtonVisual Basic kullanıyorsanız, CustomControl1. Designer. vb dosyasını kaydedin ve kapatın. Kod Düzenleyicisi 'nde CustomControl1. vb dosyasını açın.
Denetiminizin dahil olacağı özel yöntemleri veya özellikleri uygulayın.
Denetiminizin grafik görünümünü değiştirmek istiyorsanız, yöntemini geçersiz kılın OnPaint .
Not
Geçersiz kılma OnPaint , tüm denetimlerin görünümünü değiştirmenize izin vermez. Windows (örneğin,) tarafından yapılan tüm boyaların yaptığı denetimler TextBox , yöntemini hiçbir şekilde çağırmaz OnPaint ve bu nedenle özel kodu hiçbir şekilde kullanmaz. Yöntemin kullanılabilir olup olmadığını görmek için değiştirmek istediğiniz belirli denetim için yardım belgelerine başvurun OnPaint . tüm Windows Form denetimlerinin listesi için bkz. Windows Forms kullanılacak denetimler. Bir denetim OnPaint üye yöntemi olarak listelenmiyorsa, bu yöntemi geçersiz kılarak görünümünü değiştiremezsiniz. Özel boyama hakkında daha fazla bilgi için bkz. özel denetim boyama ve işleme.
Protected Overrides Sub OnPaint(ByVal e As _ System.Windows.Forms.PaintEventArgs) MyBase.OnPaint(e) ' Insert code to do custom painting. ' If you want to completely change the appearance of your control, ' do not call MyBase.OnPaint(e). End Subprotected override void OnPaint(PaintEventArgs pe) { base.OnPaint(pe); // Insert code to do custom painting. // If you want to completely change the appearance of your control, // do not call base.OnPaint(pe). }Denetiminizi kaydedin ve test edin.