MeslekForum Mesleki Gelişim Forumu

Go Back   MeslekForum Mesleki Gelişim Forumu > Bilgisayar Yazılım Donanım > Programlama

Cevapla
 
LinkBack Seçenekler Stil
Alt 12-09-2009, 22:06   #1 (permalink)
Kullanıcı Profili
SITE ADMİN
Taner - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: Oct 2009
Üye No : 2
Mesajlar: 94
Standart Menüleri Kullanma

Menüler, uygulamaların önemli araçlarına ve fonksiyonlarına kolayca erişimi sağlar.
Uygun bir menü planlaması ve tasarımı programınızın işlevselliğini artırır.

Menüler, bilinen üst seviye fonksiyon ve komutların programa eklenmesine izin
vererek uygulamanın kolayca anlaşılmasını sağlar. Tasarımı iyi yapılmış bir menü,
uygulamanın tüm işlevselliğini mantıksal bir düzen dâhilinde kullanıcıya sunmalıdır.
Tersine kötü tasarlanmış menüye sahip bir program sadece zorunlu olunduğu zaman
kullanılacak, bu da iyi bir uygulamada olmaması gereken bir özelliktir.

İyi bir menü tasarımında, uygulamanın mantıksal akışı göz önünde bulundurulmalıdır.
Menü öğeleri, ilişkili öğeler dikkate alınarak gruplandırılmalıdır. Menülere ulaşım için kısa
yol tuşlarının bulunması programın kullanılabilirliğine önemli katkı sağlar.

Tasarım Aşamasında Menü Oluşturmak

Tasarım aşamasında ana menü (MainMenu) oluşturmak için MenuStrip öğesi
(Component) kullanılır. MenuStrip öğesi, MenuItem kontrolünün koleksiyonunu saklar ve
yönetir. Formlarınız için MenuStrip öğesiyle hızlı bir şekilde menü tasarımı yapabilirsiniz.

MenuStrip öğesi aşağıdakileri yapmanıza izin verir:
 Yeni menü ve menü çubukları oluşturabilirsiniz.
 Var olan menüye yeni öğeler ekleyebilirsiniz.
 Özellikler penceresini kullanarak, menü ve menü öğelerinin özelliklerini
değiştirebilirsiniz.
 Menü öğeleri için olay yönlendirici (event handlers) ler ekleyebilirsiniz.

Uygulamanıza yeni bir menü eklemek için MenuStrip öğesini formunuza
eklemelisiniz. Bunun için araç kutusundan (ToolBox) MenuStrip öğesini seçip formunuzun
üstüne sürükleyiniz. MenuStrip öğesi formun üstüne geldikten sonra menüyü istediğiniz gibi
özelleştiriniz. Bunun için Type Here yazan kutucuğa tıklayınız. Alt menü oluşturmak için
öğenin sağına tıklayınız.


Resim 3.1: MenuStrip öğesiyle menü oluşturmak

Menüye yeni bir öğe eklendiği zaman, program MenuItem nesnesinin bir örneğini
oluşturur. Özellikler penceresinde MenuItem nesnesinden oluşturulan her örneğin özellikleri
ve üyeleri vardır. Özellikler penceresindeki Text özelliği, programın çalışması esnasında
gösterilen metni ifade eder. Name özelliği ise, objenin referansının kod kısmına nasıl
gönderileceğini gösterir.

Menü öğelerine ayırıcı çubuk (seperator bar) eklemek için,
 Önce menü öğesini seçiniz.
 Daha sonra menü öğesi üzerinde sağ tık yapınız ve gelen pencerede
Insert>Seperator’u seçiniz.


Resim 3.2: Menü öğesine ayırıcı çubuk ekleme

Menü Erişimi ve Kısa Yol Tuşları

Menülere erişmek ve kısa yol tuşlarını kullanabilmek için klavye erişimini aktif hale getirebilirsiniz.

 Erişim Tuşları

Erişim tuşları, klavyenizdeki Alt tuşu yardımıyla daha önceden belirlenmiş harflere
basarak menülere ulaşmanızı sağlar. Menü açıldığında alt tuşu ve belirtilen tuşa basarak ilgili
menü öğesini çalıştırabilirsiniz. Mesela, çoğu programda alt tuşu ile birlikte F tuşuna
basıldığında (Alt+F) Dosya (File) menüsü aktif olmaktadır. Formlardaki ilgili menü
öğesinde, belirtilen erişim tuşunun altı çizilir.
Menü öğeleri farklı gruplarda olmak şartıyla, aynı erişim tuşunu birden fazla menü
öğesinde kullanabilirsiniz. Örneğin, File menüsünde Alt+C tuş kombinasyonunu programı
kapatmak için kullanabileceğiniz gibi, Edit menüsünde kopyalama işlemi için aynı
kombinasyonu kullanabilirsiniz. Aynı tuş kombinasyonunu bir menü içindeki farklı öğelere
uygulamaktan kaçınınız. Eğer bunu yaparsanız, program bu öğeler arasında geçiş yapmanıza
izin verir ancak ENTER tuşu ile bu öğeleri çalıştıramazsınız.

Menü öğesine erişim tuşu atamak için:
 Tasarı ekranında erişim tuşu eklemek istediğiniz öğeyi seçiniz.
 Erişim tuşu olarak belirlemek istediğiniz karakterin önüne & (Ampersand)
işareti koyunuz.
 Kısa yol tuşları
* Kısa yol tuşu eklemek istediğiniz menü öğesini seçerek aktif hale
getiriniz.
* Özellikler penceresindeki ShortcutKeys anahtarını seçiniz.
* Sağ taraftaki açılır menüden uygun kısa yol kombinasyonunu seçiniz.

Menü Öğelerinin Olaylarını Kullanma

Diğer kontrollere (buton, TextBox) Event Handler (olay yönlendirici) eklediğiniz gibi,
menü öğelerine de Event Handler ekleyebilirsiniz. En sık kullanılan olay Click olayıdır.
Click olay yönlendiricisi, menü öğesi tıklandığı zaman gerçekleşmesi istenen kodu ihtiva
etmelidir. Bu kod aynı zamanda, kısa yol tuş bileşimi kullanıldığında da çalışmalıdır. Select
olayı, bir menü öğesi fare ya da klavye kısa yolu ile seçildiğinde işlev görür.

İçerik Menüsü (Context Menu) Oluşturma

İçerik menüleri genellikle, öğe üzerinde sağ tık yapıldığında açılan menüler için
kullanılır. İçerik menüleri, Araç kutusundaki ContextMenuStrip öğesi (component)
kullanılarak eklenir. Bu öğeler, MenuStrip (ana menü) oluşturmada izlenen yöntemler gibi
uygulanabilir.
İçerik menüleri, ana menünün birçok özelliğini gösterir. Bunlar için kısa yol tuşları
atayabilirsiniz ama ana menüde olduğu gibi erişim tuşu veremezsiniz. Bir formdaki kontrolü
içerik menüsü ile ilişkilendirmek için kontrolün özellikler penceresindeki ContextMenuStrip
anahtarını kullanmalısınız.

ContextMenu oluşturmak için:
 Araç kutusundaki ContextMenuStrip öğesine çift tıklayınız ya da formun üstüne
sürükleyiniz. ContextMenuStrip öğesi formun üst kenarına yerleşir.
 Menü içerisinde olması gereken öğeleri, ana menüdeki gibi ekleyiniz.
 Eğer gerekiyorsa özellikler menüsünden bir olayı (event) seçiniz.
 İçerik menüsüyle ilişkilendireceğiniz kontrolü seçiniz. Özellikler
penceresindeki ContextMenuStrip anahtarının sağında bulunan açılır liste
kutusundan ilgili içerik menüsü öğesini seçiniz. Artık uygulamanızın çalışma
anında (RunTime) ilgili kontrole sağ tık yaptığınızda hazırlamış olduğunuz
içerik menüsü görünecektir.



Resim 3.3: Kontrolü ContextMenu ile ilişkilendirme ve içerik menüsünün uygulaması

Çalışma Zamanında Menüleri Değiştirmek

Menüleri çalışma zamanındaki şartlara bağlı olarak dinamik bir şekilde
yönetebilirsiniz. Mesela programınız belirli bir görevi yerine getiremediği zamanlarda,
çağıracağınız bir komutla bu menüyü pasif duruma getirebilirsiniz. Kullanıcıya bir sonraki
menü öğesine geçebilmesi için bir seçme onay imi ya da radio buton gibi seçenekler
sunabilirsiniz. Menü öğelerini bazen gizlemek isteyebilirsiniz. Çalışma zamanında bir menü
öğesi ekleyebilir veya başka bir menü öğesiyle birleştirebilirsiniz.

Menü Komutlarını Aktif ve Pasif Yapma

Her menü öğesi bir Enabled (seçilir kılınmış) özelliğine sahiptir. Bu özellik false
yapıldığında, menü öğesi pasif (disabled) olur ve kullanıcıların erişimini engeller. Erişim
tuşları ve kısa yol tuş kombinasyonları da pasif olur ve bu öğeler soluk bir şekilde gözükür.
Aşağıdaki program kodu, çalışma anında bir menü öğesinin nasıl pasif yapılacağını
göstermektedir.

Kod:
menuItem1.Enabled = false;
Menü Öğelerini Gizleme

Özellikler penceresindeki Visible anahtarı yardımıyla bir menü öğesini
gizleyebilirsiniz. Program içinde değişen şartlara göre de menüleri gizlemek isteyebilirsiniz.
Aşağıdaki program kodu bir menü öğesinin nasıl gizleneceğini göstermektedir.

Kod:
menuItem1.Visible = false;
Çalışma zamanında gizlediğiniz bir menü, menü çubuğuyla birlikte gizlenir.
Dolayısıyla gizlediğiniz menünün alt menüleri de bu süre zarfında erişilmez olur.


Menüleri Kopyalama

Çalışma anında var olan bir menüye ait olan öğeleri çoğaltabilirsiniz. Mesela bir
uygulamaya ait Edit menüsünü bir kontrol için içerik menüsü (context menu) olarak
kullanmak isteyebilirsiniz. Yeni bir menü öğesi oluşturmak için CloneMenu metodunu
kullanabilirsiniz. Bu metot, bir menüyü üyeleriyle birlikte çoğaltmaya yarar. Böylece yeni
oluşturulan menüde de eski menüdeki tüm olaylar da (event) yer alır. Aşağıdaki program
parçası, bir menü öğesinden yeni bir içerik menüsünün nasıl oluşturulacağını göstermektedir.

Kod:
// Bu örnekte daha önceden var olan bir menü olduğu farz
edilmiştir.
// fileMenuItem ve kontrol myButton olarak çağrılmıştır.
// Yeni bir içerik menüsü bildirimi yapar ve örneğini oluşturur.
ContextMenu myContextMenu = new ContextMenu();
myContextMenu.MenuItems.Add(fileMenuItem.CloneMenu());
// myButton kontrolüne ContextMenu sü atanır.
myButton.ContextMenu = myContextMenu;
Çalışma Anında Menü Öğelerini Birleştirme

Bazen tek menü içinde birden fazla menü öğesini göstermek isteyebilirsiniz.
MergeMenu metodu, çalışma anında birden fazla menüyü tek bir menü altında
birleştirmenizi sağlar. Bu yolla birden fazla MainMenu (ana menü) ve ContextMenu
öğelerini diğer menü öğeleriyle birleştirebilirsiniz.

Kod:
fileMenuItem.MergeMenu(myContextMenu);
Yukarıdaki program kodunda fileMenuItem, myContextMenu öğesi ile
birleştirilmiştir.

Çalışma Anında Menü Öğeleri Eklemek

Çalışma anında dinamik olarak bir menü öğesine yeni bir öğe ekleyebilirsiniz.
Örneğin bir programda en son açılan dosyaları menüye eklemek isteyebilirsiniz. Oluşturulan
yeni menü öğesinin olay yönlendiricisi yoktur.
Çalışma anında yeni bir menü öğesi eklemek için, yeni bir menü öğesi bildiriminde
bulununuz ve bunun bir örneğini oluşturunuz.

Kod:
MenuItem myItem;
myItem = new MenuItem("Item 1");
Bu program kodunda ise, MenuItem’e Item 1 adında yeni bir öğe eklenmiştir.

Kaynak : MEGEP | Nesne Tabanlı Programlama 2
__________________
Beni Sevmek İçin Programlanma Devrelerini Yakarım !
Taner isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Cevapla

Etiketler
çalışma anında menü öğeleri eklemek, çalışma anında menü öğelerini birleştirme, çalışma zamanında menüleri değiştirmek, menü komutlarını aktif ve pasif yapma, menü öğelerini gizleme, menüleri kopyalama

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 19:22.


Powered by vBulletin
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30