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

  1. Visual Studio, yeni bir Windows Forms uygulama projesi oluşturun.

  2. Project menüsünden yeni öğe ekle' yi seçin.

    Yeni Öğe Ekle iletişim kutusu görünür.

  3. Yeni öğe Ekle Iletişim kutusunda özel denetim ' eçift tıklayın.

    Projenize yeni bir özel denetim eklenir.

  4. Ş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.
  5. Öğesinden devralan sınıf bildirimini bulun Control .

  6. 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.Button
    
    public partial class CustomControl1 : System.Windows.Forms.Button
    
  7. Visual Basic kullanıyorsanız, CustomControl1. Designer. vb dosyasını kaydedin ve kapatın. Kod Düzenleyicisi 'nde CustomControl1. vb dosyasını açın.

  8. Denetiminizin dahil olacağı özel yöntemleri veya özellikleri uygulayın.

  9. 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 Sub
    
    protected 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).
    }
    
  10. Denetiminizi kaydedin ve test edin.

Ayrıca bkz.