Visual Studio’da formları daha önce görmüştük. Şimdi bir senaryo oluşturalım ve bu senaryoya göre program geliştirmeye devam edelim.
Müşteriler, satın alma personeli ile firmaya sipariş verir. Eğer firmada ilgili ürün mevcutsa, müşteriye ürün sevk edilir; yoksa üretim veya satın alma işlemleri gerçekleştirilir.
Bu senaryo üzerinde çalışırken Müşteri Tanım Formu ve Sipariş Formu oluşturmamız gerekiyor. Sipariş Formu, siparişi veren kişi için Adı, Görevi, Telefonu ve Mail adresi gibi bilgiler içermelidir. Ayrıca Müşteri Personel Tanım Formu da oluşturarak personel bilgilerindeki yazım hatalarını önlemek için bir form kullanabiliriz.
Aynı şekilde, firma içinde Personel Tanım Formu ve Ürün Tanım Formu oluşturmalıyız. Ayrıca bir siparişte birden fazla ürün sipariş edilebileceği göz önüne alınarak Sipariş Hareket Formu da oluşturulmalıdır.
E-ticaret sitelerinde müşteriler farklı adreslere sevk edilmesini isteyebilir, bu nedenle Müşteri Adres Tanım Formu da oluşturulmalıdır.
Sonuç olarak, müşterilerin personelleri aracılığıyla sipariş verdikleri ürünler, firma personelleri tarafından müşterilerin belirttiği sevk adreslerine gönderilir. Bu senaryoda dikkat çeken önemli bir nokta, çoğul ilişkilerin sıkça kullanılmasıdır.
Örneğin, bir müşteri siparişinde ürünlerin bir kısmını farklı bir adrese göndermek istediğinde nasıl bir çözüm uygulanacağı da ele alınmalıdır. Bu durumda, kargo problemlerini önlemek için genellikle yeni bir sipariş oluşturma yoluna gidilir.
Senaryoda tanımlama formları bulunmaktadır ve artık Form1’e ihtiyaç duyulmamaktadır. Form ekleme işlemlerini biliyoruz. Öncelikle frmAnaForm’u MDI form olarak belirliyoruz, yani bir taşıyıcı form oluşturuyoruz.
Visual Studio’nun yeni başladığı durumlarda arka plandaki işlemler nedeniyle Toolbox ve Properties ekranları bazen gecikmeli olarak açılabilir.
Şimdi Toolbox üzerinden MenuStrip’i bulup menüleri oluşturalım. Menü üst kısmında “Tanımlar” olsun. Tanımlar menüsünün altına “Müşteri Tanımları” menü seçeneğini ekleyelim. Menülerde her oluşturduğumuz menü seçeneği için Properties kısmından menü adını değiştiriyoruz.
MenuStrip1 adını “MnuAnaMenu” şeklinde değiştiriyoruz.
Formlar klasörünün altına anlamlı isimlerle form oluşturuyoruz.
Şimdi AnaForm’a Toolbar ekleyip, Siparişler için bir buton oluşturalım. Toolbox’tan ToolStrip’i bulup form üzerine ekleyelim.
ToolStrip’in adını anlamlı bir şekilde değiştirelim ve boyutlarını 16×16’ten daha büyük, örneğin 48×48’e getirelim.
Butonlara resim eklemek için Resource dosyasını kullanalım. Bu için ProUretim’e sağ tıklayıp Properties’e gidelim.
Resource kısmındaki “Create or Open Assembly Resources” seçeneğinden bir resource dosyası oluşturalım.
Resource içindeki “images” bölümüne daha önce hazırladığımız resmi ekleyelim.
Şimdi AnaForm üzerindeki toolbara bir buton ekleyelim. Buradan Resource bölümünden resmi seçelim. Solution Explorer’da bir Resource klasörü oluşturarak resimleri bu klasör içinde toplayalım.
Butonun özelliklerini istediğimiz gibi yapılandıralım.
Şimdi tüm dosyaları kaydedip programı çalıştıralım.
Menü ve Toolbar görünüyor ancak henüz işlevsellikleri yok. Menüden bir seçeneğe tıkladığımızda hangi formun açılmasını istiyorsak bunu belirtmemiz gerekiyor.
Örneğin, “Müşteri Tanım” seçeneğine tıklandığında Müşteri Tanım Formu’nu göstermek için ilgili kodu ekleyelim.
AnaForm, taşıyıcı form olarak seçildiği için Show fonksiyonunun içine “Me” yazmamız yeterlidir. Müşteri formunun AnaForm’un altında bir form olduğunu belirtmiş oluruz.
Şimdi diğer menü seçenekleri için benzer şekilde devam edelim.
“Siparişler” formu, hem menüden hem de toolbar butonundan açılacaktır. İlk olarak menüdeki tanımlamayı yapalım.
Butona tıkladığımızda, ilgili menü click olayını tetiklememiz yeterli olacaktır.
Sipariş girişi yapılırken bir sipariş hakkında bilgi almak istenebilir. Birden fazla sipariş formunu açmamız gerekebilir. Bu durumu ele almak için “FrmAnaForm” altına “Private MySiparisForm as FrmSipariler” şeklinde bir değişken ekleyelim.
MnuSiparisler_Click olayında da “MySiparisForm = New FrmSiparisler” kodunu ekleyerek Sipariş Formu’nu oluşturalım.