| Editor Login | Register | ||
| > Bilgisayar > Nesne Programlama > vb.net |
|
|
| Bir Windows Kontrolü Oluşturma |
Kontroller; bir programın yürütülmesi için kullanılan baş aktörlerdir. Bu yazıda, bir programcının Program geliştirirken .Net Framework ile gelen kontroller yetmediği zaman, kendi kontrolünü oluşturup bu kontrolü kullanabilmesi için yapılması gerekenler bir örnekle birlikte anlatılmıştır. .Net Framework ile gelen kontroller programcının işine çözüm sunmadığı zamanlarda isterse programcı kendi kontrolünü kendisi yazabilir. Bu yazılan kontrol de ToolBox ekranında yer alabilir.
Yeni bir kontrol yaratmak için, Visual Studio.Net te Control Library Project kullanılır. Control Library Project kullanılarakyazılacak bir kontrol, var olan kontrolden türetilebilir veya tamamen yeni bir kontrol olarak da yazılabilir. Konu Örnek Uygulama üzerinden daha detaylı bir şekilde anlatılmıştır.
Örnek Uygulama
Bu örnekte; DateInfo ismi verilen bir kontrol yapılacaktır. Bu kontrol; istenilen bir şehrin istenilen andaki zamanını veren bir kontrol olacaktır. Bunun için Timer kontrolü kullanılacaktır.
Bunun için önce Visual Studio.Net içerisinde yeni bir Control Library Project oluşturulur(Şekil 1).
Şekil 1 Yeni Bir Control Library Projesi Oluşturmak
Proje açıldıktan sonra Solution Explorer da görünen Ornek isimli proje ismi DateInfo olarak değiştirilir. Daha sonra yine Soultion Explorer penceresinde görünen UserControl1.vb dosyasının ismi DateInfo.vb olarak değiştirilir. Kod kısmında da aynı şekilde UserControl1 DateInfo yapılır. Böylece oluşturulacak olan kontrolün ismi belirlenmiş olur.
Daha sonra dizyn ekranında Şekil 2a da görüldüğü gibi bir görünüm elde edilir. Bu dizaynda şehir adını gösteren bir Label (adı cityLabel), verilecek olan tarihi gösteren bir Label (adı dateLabel) ve o zamanı gösteren bir Label (adı timeLabel) olmak üzere üç adet Label kontrolü kullanılmıştır.Bu üç Label kontrolü alt alta yerleştirilerek dizayn gerçekleştirilir.
Şekil 2a Örnek Uygulama Altındaki DateInfo Ekran Dizaynı -1
Daha sonra Kontrole adı controlTimer olan bir adet Timer kontrolü eklenir(Şekil 2b). Bu kontrolünün Interval özelliği 1000 değerine ayarlanır.
Şekil 2b Örnek Uygulama Altındaki DateInfo Ekran Dizaynı -2
DateInfo kontrolü; beş tane özellik (Property) (Şekil 3a), iki tane sadece okunabilir özellik (ReadOnly Property) (Şekil 3b) ve iki adet method (Şekil 3c) içerir. Public Property ArkaPlanRengi() As Color Şekil 3a Örnek Uygulama Altındaki DateInfo Kod Bloğu – Property
Şekil 3a daki beş özellik değiştirilebilir özelliklerdir. Bu özelliklerin dört tanesi renk ( ArkaPlanRengi, Sehir_YaziRengi, Tarih_YaziRengi, Zaman_YaziRengi) ile ilgili, bir tanesi de cityLabel adlı Label kontrolüne yazılacak Şehir adı (Sehir) ile ilgilidir. Public ReadOnly Property [Date]() As String Şekil 3b Örnek Uygulama Altındaki DateInfo Kod Bloğu – ReadOnly Property
Şekil 3b deki, görünebilen fakat değiştirilemeyen bu iki özellik Tarih ve Zaman özellikleridir. Bu özellikler metodlar ile belirlenebilir. Private controlTime As DateTime Şekil 3c Örnek Uygulama Altındaki DateInfo Kod Bloğu - Metodlar
StartTimer metodu kontrolü başlatmak; StopTimer ise kontrolü durdurmak için kullanılan metodlardır. Kontrol başlatılırken, başlatılacak zaman için DateTime tipinde bir değişken istenecektir. Bu değişkenin gösterdiği zamandan başlayarak kontrol çalışacaktır. Bu değişken; sınıf içinde geçerli olacak bir değişken olan controlTimer adlı değişkene atanıp Timer başlatılır. controlTimer adlı Timer Kontrolü başlatıldığında yerel olarak bir fonksiyon çalışacaktır. Bu fonksiyon Timer kontrolünün Tick olayıdır(Şekil 3d). Private Sub controlTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles controlTimer.Tick Şekil 3d Örnek Uygulama Altındaki DateInfo Kod Bloğu – Timer
Şekil 4.30c içerisindeki StartTimer fonksiyonu içerisindeki Me.controlTimer.Start() satır işlediği anda Şekil 3d deki fonksiyon, Timer kontrolünün Interval değeri aralığında çalışır. Burada Interval özelliği 1000 olduğuna göre her bir saniyede bir kere, Şekil 3d deki bu fonksiyon çalışacaktır. Bu fonksiyon her çalıştığında controlTimer değişkenine bir saniye eklenecek ve yeni oluşmuş olan zaman dateLabel ve timeLabel isimli Label kontrollerine yazılacaktır.
Kontrol bitirildikten sonra Build menüsünden Build Solution seçilerek kontrol yapılandırılır ve bir hata olup olmadığı kontrol edilir.
Bundan sonra kontrolü denemek için projeye bir tane Windows uygulaması eklenir. Bunun için; File Menüsünden Add Project – New Project seçilerek yeni uygulama projeye dahil edilir.
Bu yeni eklenen Windows uygulamasına DateInfo adlı kullanıcı kontrolünü eklemek için Project menüsünden Add Referance seçilir. Açılan ekrandan Projects sekmesine gidilir ve kullanıcı kontrolü seçilerek uygulamaya eklenir(Şekil 4).
Şekil 4 Örnek Uygulama Altındaki Windows Uygulamasına DateInfo Kullanıcı Kontrolünü Ekleme
Şekil 4.31 ile oluşturulan kullanıcı kontrolünün DLL dosyası uygulamaya eklenir. Bu kontrol; uygulamaya eklendiği anda ToolBox ta My User Controls adlı sekme altına da eklenir(Şekil 5).
Şekil 5 DateInfo Kullanıcı Kontrolünün ToolBox ta Görünümü
Şekil 5 de görülen DateInfo kontrolü Form a eklendikten sonra Properties penceresinde oluşturulmuş olan özellikler görülebilir. Bu özellikler istenildiği gibi değiştirilebilir. Şekil 6a ve Şekil 6b de Properties penceresinde özellikler değiştirildikten sonra DateInfo kontrolünün form üzerindeki örnek bir görüntüsü görülmektedir.
Şekil 6a Örnek DateInfo Kontrolünün Properties Ekranı Görüntüsü
Şekil 6b Örnek DateInfo Kontrolünün Form Görüntüsü
Bu kontrolü kullanmaya başlamak için DateInfo1.StartTimer(Now) satırını yazmak yeterli olacaktır. Bu satırla şu an içinde bulunulan tarih ve zamandan başlanacağı belirtilmiştir. Kontrol çalışmaya başladıktan sonra oluşacak örnek ekran görüntüsü Şekil 4.34 teki gibi olacaktır. Kontrolü programın herhangi bir yerinde durdurmak için
DateInfo1.StopTimer()
satırı yazılır.
Şekil 7 Örnek DateInfo Kontrolünün Form Üzerinde Çalışma Görüntüsü Bu yazıda yeni bir Windows kontrolünün nasıl oluşturulacağı ve oluşturulan bu kotrolün nasıl kullanılacağı verilen bir örnek üzerinden anlatılmıştır. |
|
| Bağlantılar: bilgininefendisi.net |
| Open Source Document Project | AUP&TOS |