Pazartesi , 23 Ocak 2017
Anasayfa » C# » c# wpf Çoklu Sayfa Kullanma İle İlgili Örnek Program

c# wpf Çoklu Sayfa Kullanma İle İlgili Örnek Program

Merhaba arkadaşlar bu yazımızda c# wpf platformunda çoklu sayfa kullanılarak yapılan bir program yazacağız.

Öncelikle uygulamayı anlatayım size arkadaşlar;Bu uygulamayı yazarken bir kullanım amacım yoktu örnek olarak  yaptım. Uygulamamızı başlattığımız zaman karşımıza bir giriş ekranı gelecek.

wpdf

Burada kaydolma ekranı yok sadece uygulamayı yazarken belirlediğimiz giriş adı ve şifreyle giriş yapabiliyoruz eğer şifre veya giriş adı yanlış olursa giriş yapılmayacak.

Giriş adı ve şifreyi doğru girdikten sonra giriş butonuna bastığımız zaman karşımıza ikinci bir ekran gelecek.

wpdf2

Bu ekranın ise böyle bir tasarımı olacak bu ekranda ne yapacağımıza gelirsek ise;

Ekranın en üst bölümünde bir karşılama metni bulunuyor bu metinde kullanıcı adı ve merhaba yazacaktır hangi kullanıcı adını yazarsak “Merhaba+kullanıcıAdı” şeklinde bir metin karşılayacak bizi.

İkinci olarak “okullar” yazan bir label ve altında “ComboBox” var. Peki bu ComboBox nedir ne işe yarar?

wpf3

ComboBox’da bu şekilde okul isimleri olacak ve bu okullardan istediğimizi seçebileceğiz.

Combobox’un altında ise bir “Ekle” yazılı buton bulunmakta. Bu buton ise ComboBox’dan seçtiğimiz okul ismini oluşturacağımız diziye kaydetmemizi sağlayacak.

Buton’un altında ise “Kabul” yazılı bir “CheckBox” var ve onun altında da “İleri” yazılı olan bir buton bulunmakta ama bu buton kullanılabilir durumda değil yani basılamaz ve sönük renkte. “kabul” yazılı CheckBox’ı seçili hale getirirsek buton kullanılabilir hale gelecek ve butona tıklayarak bir sonraki sayfamıza geçebileceğiz.

wpf4

Bu ekranda ise ekranın büyük bir bölümünü kaplayan bir “ListBox” ve altında “Ekle” ve “Sil” yazılı olan iki buton var.

Bu listBox’da önceki ekranda seçmiş olduğumuz okullar yazılı olacak. Birden fazla okul seçme hakkımız olacak.

Altında bulunan “Ekle” butonuna bastığımızda ise ekrana tekrar önceki okul eklediğimiz sayfa gelecek.

“Sil” butonuna tıkladığımız da ise listBox’da seçili olan okulu sileceğiz.

Uygulamamız bu şekilde çalışacaktır arkadaşlar her sayfasını detaylı bir şekilde size anlatmaya çalıştım şimdi ise bu programı beraber yazmaya çalışacağız.İlk olarak “MainWindow” ile başlayalım programı yazmaya.

xml dosyasıyla başlayalım;

Uygulamamızı yazarken çoklu ekranı kullanmak için ben “Frame” kullanacağım. Bir diğer yöntemi daha var ancak o yöntemle yeni açacağımız sayfa yeni bir sayfa olarak açılıyor önceki sayfa kapanmıyor buda pek kullanılmayan bir yöntem olmasını sağlıyor.

Ekranı boydan boya kaplayacak bir “Frame” ekliyoruz ekrana ve buna bir isim veriyoruz.Ben “frame1” ismini verdim ekrana yerleştirdiğim Frame nesneme.Xml dosyasının kodları aşağıdaki gibi olmalı.

 

 

Şimdi ise Cs doyasına geçip burada kodlarımızı yazalım; Burada  yapmamız gereken tek şey Frame nesnesin de İlk sayfamızı göstermek ancak bundan önce uygulamamıza sayfa eklememiz gerekir.Bunun için sol tarafta bulunan “Solution Explorer” altında bulunan dosyalardan uygulama ismini taşıyan dosyaya sağ tıklayıp sırasıyla “Add/New Item” seçeneklerini seçiyoruz.

wpf5

Açılan ekranda “Page” seçeneğini seçip buna bir isim veriyoruz ben “Page1” ismini verdim. Sayfa ekleme işlemi böyledir arkadaşlar daha sonra 2 kez daha bu şekilde sayfa ekleyeceğiz.

Şimdi ise .cs dosyasına geçip Frame nesnesin de oluşturduğumuz ekranın gözükmesini sağlayacağız.

“public MainWindow” metodunun içine

Kodunu ekliyoruz. Sayfanın kodu aşağıdaki gibi olacak.

Şimdi ise “Page1” ismini verdiğimiz sayfamızın tasarımına geçelim..xml dosyamıza aşağıdaki kodu ekliyoruz;

Bu kodlarla ekrana 2 label, 2 textBox ve 1 buton ekliyoruz ve bunlara isim veriyoruz. Label nesnelerine isim vermemize gerek yok bunlarrla bir işlem yapmayacağımız için. TextBoxlara ise “txtSifre” ve “txtGiris” isimlerini verdim butona ise  isim vermeye gerek yok ama ona “Click” metodu ekleyeceğiz ve ona ise “Button_Click” ismini vereceğiz.  şimdi ise gelin .cs dosyasına geçip kodlarımızı yazalım.

Burada ilk olarak yeni bir sayfa daha ekleyip ona da “Page2” ismini verelim.Ve sayfayı burada tanımlayıp isim verelim, ben “p2” ismini verdim.Kodu ise şekilde;

Page2 p2 = new Page2();

Şimdi ise “Button_Click” ismini verdiğimiz Click metodunun içinde kullanıcın girdiği şifre ve giriş adı bizim belirleyeceğimiz şifre ve kullanıcı adıyla aynı olup olmayacağını bulup ona göre işlem yapacağız. Ben giriş adını “www.yazilimbilisim.net” , şifreyi ise “devrim” olarak belirledim ve kontrolleri buna göre yapacağım. İlk olarak bir “İf” kullanacağız ve kullanıcının girdiği değerleri okuyup benim karar verdiğim şifre ve giriş adıyla karşılaştıracağım.

Yukarıda kod üzerinde gerekli açıklamaları yaptım ancak burada da daha detaylı açıklamalarda bulunayım.

İf’in içnde öncelikle txtGiris adlı textBox’ın içindeki yazıyı okuyup “Equals” metoduyla kendi belirlediğim giriş ismiyle karşılaştırdım ve ardından “&&” ekleyerek ikinci bir koşul daha vererek bu sefer txtSifre adlı TextBoxun içindeki yazıyı Equals metoduyla karşılaştırdım. Siz istediğiniz takdirde “Equals” yerine “==” sembolünüde kullanabilirsiniz.

Şimdi ise if doğru olursa yapılacakları yazacağız; Frame nesnesinde “Page2” ismini verdiğimiz sayfanın gözükmesini sağladık ve p2. sayfasında bulunan “kullanıcıAdı” değişkeninin içine kullanıcı adını atıyoruz. Biz daha Page2 sayfasını tam olarak yazmadığımız için burada hata alabiliriz ancak bu daha sonra geçecektir. Şimdi ise “Else” yazarak if gerçekleşmezse yani giriş adı veya şifre yanlış olursa ne olacağına karar vereceğiz. Ben “MessageBox” içinde  tekrar denemesini yazdım.

Sırada ise Page2 sayfası var. Oranın tasarım kodları ise aşağıdaki gibi olacaktır.

Kodlarını yazarak ekrana 2 label, 2 buton, 1 comboBox ve bir checkBox ekliyoruz.

Şimdi ise Pag2.xaml.cs dosyamıza geçip kodlarımızı tek tek yazalım. Öncelikle yeni bir sayfa daha oluşturup buna da “Page3” ismini veriyoruz ve bu sayfayı kodlarımızda tanımlayıp “p3” ismini veriyoruz.

Daha sonra Page1 de kullandığımız değişkenimizi oluşturacağız.

Bundan sonra checkBox’a Click metodu oluşturup içine checkBox’un seçili olup olmadığını anlamamızı sağlayacak kodları yazıyoruz bu kodlar aşağıdaki gibidir.

Gerekli açıklamaları kod üzerinde yaptım şimdi ise seçilen okul isimlerini saklayacağımız bir tür dizi çeşidi  olan “ObservableCollection<string>” diziyi oluşturacağız.

Şimdi ise Ekle butonu için click metodu oluşturup onun içine seçilen okulları dize kaydedecek kodu yazacağız.

Şimdi ise İleri butonu için click metodu oluşturup diğer sayfaya geçmek için gerekli olan kodları yazacağız.

Bu metodu oluşturduktan sonra Page2 için “Loaded” metodu oluşturup ekrana “Hoşgeldin kullanıcıAdi” yazısını ekrana yazdırmak için gerekli kodları yazacağız.

Bu metodların Page.xmal dosyasında butonlarda, checkBoxda ve Page de tanımlı olması gerekiyor ben verdiğim kodlarda bunlar tanımlı o yüzden bir değişiklik yapmamaya veya yaptığınız takdirde her iki tarafta da kodları kontrol etmelisiniz.Bu kodları ekledikten sonra Page2.xaml.cs dosyasının son hali aşağıdaki gibi olamlı;

Şimdi ise son sayfamız olan Page3 sayfamıza geçeceğiz. İlk olarak tasarım ekranını yapıyoruz. Ekranın büyük bölüümü kaplayan bir listBox ve 2 buton ekliyoruz.Kodlar;

Bu kodları ekledikten sonra Page3.xaml.cs dosyasına geçip kodlarımızı yazmaya başlayabiliriz.

İlk olarak Page2yi tanımlayıp isim veriyoruz ben “p2” ismini verdim.

Daha sonra Ekle butonu için click metodu oluşturduk ve butona tıklayınca Page2 sayfasını ekrana getireceğiz.

Daha sonra Sil butonu için  click metodu oluşturup ListBoxda seçili olan okul ismini hem listBoxdan hem de diziden sileceğiz.

Bu metodu yazdıktan sonra Page3 için “Loaded” metodu yazıp içine sayfa yüklenirken seçilmiş olan okulları listBox içinde göstereceğiz.

Bu kodu ekledikten sonra Page3.xaml.cs dosyası aşağıdaki gibi olmalıdır.

Uygulama bu kadar arkadaşlar ben gerek kod üzerinde gerek yazımın çeşitli bölümlerinde açıklamalarda bulundum ancak anlamadığınız bir yer veya sorunuz varsa yorum yapmayı ihmal etmeyin.

Kaynak Kodu İndirmek İçin Tıklayınız.

 

Hakkında Devrim ÇATAK

İlginizi Çekebilir

C# Dizi Örnekleri

Nesne Tabanlı Programlama Dersi için Dizi Uygulamaları Bu yazıdaki kolay, orta ve zor olacak şekilde …

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Wordpress Tema indir