İzlenecek Yol: C ile Windows Forms Denetiminden Devralma#
C# ile devralma yoluyla güçlü özel denetimler oluşturabilirsiniz. Devralma aracılığıyla, standart Windows Forms denetimlerinin tüm doğal işlevlerini koruyan ama aynı zamanda özel işlevleri de içeren denetimler oluşturabilirsiniz. Bu kılavuzda adlı ValueButton
basit bir devralınan denetim oluşturacaksınız. Bu düğme, standart Windows Forms Button denetiminden işlevselliği devralır ve adlı ButtonValue
özel bir özelliği kullanıma sunar.
Projeyi Oluşturma
Yeni bir proje oluşturduğunuzda, kök ad alanını, derleme adını ve proje adını ayarlamak ve varsayılan bileşenin doğru ad alanında olmasını sağlamak için adını belirtirsiniz.
ValueButtonLib denetim kitaplığını ve ValueButton denetimini oluşturmak için
Visual Studio'da yeni bir Windows Forms Denetim Kitaplığı projesi oluşturun ve buna ValueButtonLib adını verin.
Proje adı olan
ValueButtonLib
, varsayılan olarak kök ad alanına da atanır. Kök ad alanı, derlemedeki bileşenlerin adlarını nitelemek için kullanılır. Örneğin, iki derleme adlıValueButton
bileşenler sağlıyorsa, kullanarak bileşeniniziValueButton
ValueButtonLib.ValueButton
belirtebilirsiniz. Daha fazla bilgi için bkz . Ad alanları.Çözüm Gezgini'da UserControl1.cs'ye sağ tıklayın ve kısayol menüsünden Yeniden Adlandır'ı seçin. Dosya adını ValueButton.cs olarak değiştirin. '
UserControl1
' kod öğesine yapılan tüm başvuruları yeniden adlandırmak isteyip istemediğiniz sorulduğunda Evet düğmesine tıklayın.Çözüm Gezgini'de ValueButton.cs dosyasına sağ tıklayın ve Kodu Görüntüle'yi seçin.
class
deyimi satırınıpublic partial class ValueButton
bulun ve bu denetimin öğesinden UserControlButtondevraldığı türü olarak değiştirin. Bu, devralınan denetiminizin denetimin tüm işlevlerini Button devralmasını sağlar.Çözüm Gezgini, tasarımcı tarafından oluşturulan ValueButton.Tasarım Aracı kod dosyasını görüntülemek için ValueButton.cs düğümünü açın. cs. Bu dosyayı Kod Düzenleyicisi'nde açın.
InitializeComponent
yöntemini bulun ve özelliğini atayan AutoScaleMode satırı kaldırın. Bu özellik denetimde Button yok.Dosyayı kaydetmek için Dosya menüsünde Tümünü Kaydet'i seçin.
Dekont
Görsel tasarımcı artık kullanılamıyor. Button Denetim kendi resmini yaptığı için tasarımcıdaki görünümünü değiştiremezsiniz. Görsel gösterimi, kodda değiştirilmediği sürece devraldığı sınıfın (başka bir ifadeyle Button) tam olarak aynı olacaktır. Yine de tasarım yüzeyine kullanıcı arabirimi öğeleri olmayan bileşenler ekleyebilirsiniz.
Devralınan Denetiminize Özellik Ekleme
Devralınan Windows Forms denetimlerinin olası kullanımlarından biri, standart Windows Forms denetimlerinin genel görünümüyle aynı olan ancak özel özellikleri kullanıma sunan denetimlerin oluşturulmasıdır. Bu bölümde, denetiminize adlı ButtonValue
bir özellik ekleyebilirsiniz.
Value özelliğini eklemek için
Çözüm Gezgini'de ValueButton.cs dosyasına sağ tıklayın ve kısayol menüsünde Kodu Görüntüle'ye tıklayın.
deyimini
class
bulun. öğesinin{
hemen ardından aşağıdaki kodu yazın:// Creates the private variable that will store the value of your // property. private int varValue; // Declares the property. public int ButtonValue { // Sets the method for retrieving the value of your property. get { return varValue; } // Sets the method for setting the value of your property. set { varValue = value; } }
Bu kod özelliğin depolandığı ve alındığı
ButtonValue
yöntemleri ayarlar. deyimiget
, döndürülen değeri özel değişkenindevarValue
depolanan değere ayarlar veset
deyimi de anahtar sözcüğünü kullanarak özel değişkeninvalue
değerini ayarlar.Dosyayı kaydetmek için Dosya menüsünde Tümünü Kaydet'i seçin.
Denetimi test edin
Denetimler tek başına projeler değildir; bir kapsayıcıda barındırılmalıdır. Denetiminizi test etmek için, içinde çalışması için bir test projesi sağlamanız gerekir. Ayrıca, denetiminizi oluşturarak (derleyerek) test projesi için erişilebilir hale getirmelisiniz. Bu bölümde, denetiminizi oluşturacak ve bir Windows Formunda test edeceksiniz.
Denetiminizi oluşturmak için
Yapı menüsünde Yapı Çözümü’ne tıklayın. Derleme, derleyici hatası veya uyarı olmadan başarılı olmalıdır.
Test projesi oluşturmak için
Dosya menüsünde Ekle'nin üzerine gelin ve Yeni Proje'ye tıklayarak Yeni Proje Ekle iletişim kutusunu açın.
Visual C# düğümünü altındaki Windows düğümünü seçin ve Windows Forms Uygulaması'na tıklayın.
Ad kutusuna Test yazın.
Çözüm Gezgini'da, test projenizin Başvurular düğümüne sağ tıklayın, ardından kısayol menüsünden Başvuru Ekle'yi seçerek Başvuru Ekle iletişim kutusunu görüntüleyin.
Projeler etiketli sekmeye tıklayın. ValueButtonLib projeniz Proje Adı altında listelenir. Başvuruyu test projesine eklemek için projeye çift tıklayın.
Çözüm Gezgini'da Test'e sağ tıklayın ve Oluştur'a tıklayın.
Denetiminizi forma eklemek için
Çözüm Gezgini'da Form1.cs'ye sağ tıklayın ve kısayol menüsünden Tasarım Aracı Görüntüle'yi seçin.
Araç Kutusu'nda ValueButtonLib Bileşenleri'ni seçin. DeğerDüğmesi'ne çift tıklayın.
Formda bir ValueButton görüntülenir.
ValueButton öğesine sağ tıklayın ve kısayol menüsünden Özellikler'i seçin.
Özellikler penceresinde bu denetimin özelliklerini inceleyin. Bunların, buttonvalue adlı ek bir özellik olması dışında standart bir düğme tarafından sunulan özelliklerle aynı olduğunu unutmayın.
ButtonValue özelliğini 5 olarak ayarlayın.
Formunuza denetim Label eklemek için Araç Kutusu'nun Tüm Windows Forms sekmesinde Etiket'e çift tıklayın.
Etiketi formun ortasına yeniden yerleşin.
öğesine çift tıklayın
valueButton1
.Kod Düzenleyicisi etkinliğe
valueButton1_Click
açılır.Aşağıdaki kod satırını ekleyin.
label1.Text = valueButton1.ButtonValue.ToString();
Çözüm Gezgini'da Test'e sağ tıklayın ve kısayol menüsünden Başlangıç Projesi Olarak Ayarla'yı seçin.
Hata Ayıkla menüsünden Hata Ayıklamayı Başlat'ı seçin.
Form1
Görünür.valueButton1
’a tıklayın.'5' rakamı içinde
label1
görüntülenir veButtonValue
devralınan denetiminizin özelliğinin yöntemi aracılığıylavalueButton1_Click
geçirildiğinilabel1
gösterir. Bu nedenle, denetiminizValueButton
standart Windows Forms düğmesinin tüm işlevlerini devralır, ancak ek bir özel özelliği kullanıma sunar.
Ayrıca bkz.
.NET Desktop feedback