Bunlar bir projeye ekleyebileceğiniz üç farklı şey ve farkı anlayıp anlamadığımdan pek emin değilim. Örneğin, hepsi bir Form
. Her biri için bazı yaygın kullanım senaryoları nelerdir? Fark ne?
Yanıtlar:
Kullanıcı Kontrolü, Özel Kontrol ve Bileşen arasındaki temel fark, miras ağacındaki farklı seviyelerden miras almalarıdır:
MyComponent
|-> Component
MyCustomControl
|-> Control
|-> Component
MyUserControl
|-> ContainerControl
|-> ScrollableControl
|-> Control
|-> Component
Kısacası, farklı seçeneklerle farklı miktarda önceden kablolu işlevsellik elde edersiniz.
Farklı seçenekleri ne zaman kullanırsınız? (bunlar düşünceler ve görüşlerdir, gerçekler değil)
UserControl
miyim?
Fredrik'in söylediğine ek olarak, bunları projeler genelinde yeniden kullanmayı planladığınızda genellikle bileşenler ve özel kontroller kullanılacaktır. Sadece bir projede kullanacağınız zaman kullanıcı kontrollerini kullanın.
Son ifadenin bence doğru olmadığına inanıyorum. Birçok farklı nedenden dolayı kullanıcı kontrolleri oluşturuyorum.
Bunun ana nedeni, eğer diyelim ki, birlikte gruplanmış birden fazla kontrol arayüzünü tasarlıyorum.
Önce bir sınıf kitaplığı oluşturuyorum, sonra ona kullanıcı denetimleri ekliyorum. Şimdi, kullanıcı kontrolünün çalışma şeklinin arkasındaki mantığın herhangi bir bölümünü değiştirmem gerekirse, çok kolay bir şekilde yapabilirim. Ayrıca bu sınıf kitaplığı birden çok kez kullanılabilir.
Ayrıca aynı klas kitaplık içinde, herhangi bir kullanıcı kontrolüm için paylaşılabilen ve kullanılabilen birden fazla sınıfa sahip olabilirim.
Kullanıcı kontrollerini kullanmamın ana nedeni budur. Ve kullanıcı kontrolünüzde veya sınıf kitaplığınızda bir değişiklik yaparsanız. işi oluşturduğunuzda. dll dinamik olarak bin klasöründe güncellenir.
Dolayısıyla, bunu başka bir projede referans veriyorsam, Bu değişiklikler yeni projede de görünecek.
Ayrıca, formla ve forma yüklediğiniz herhangi bir şeyle aynı boyama rutinlerini kullanmaz.
Dolayısıyla kullanıcı kontrolleri bize çok modüler olma yeteneği verir Ve sınıf kitaplığının temel sınıflarını paylaşan birden fazla kullanıcı kontrolüne sahip olabilirim ... Yani bir kullanıcı kontrol amacı tek bir proje için değildir. Bu açıdan herhangi bir sınırlaması yoktur. Jeff
Aralarındaki temel fark - Kullanıcı Kontrolü, yalnızca tek bir uygulama veya proje içinde kullanılabilen .ascx uzantılı bir sayfa dosyasıdır. Ancak özel kontroller, birden çok uygulamada kullanılabilen derlemelerdir (dll dosyaları).
UserControl
gerçekten "bileşik" bir kontrol (diğer kontrollerden yapılmış bir kontrol), oysa özel bir kontrol gerçekten kullanıcı tarafından tasarlanmış bir kontrol.