C# Form Çoklu Dil Desteği

Yerelleştirme diye tabir edilen uygulamanın birden çok dili desteklemesi, uygulamanın başarısını etkileyen faktörlerden biridir.

Aşağıdaki videomuzda C# form uygulamamıza çoklu dil desteğini nasıl sağlayacağımızı ve kullanıcının seçimine göre programın dilini ayarlayacağımızı işliyoruz.




C# Eklenti (Plugin) Destekli Yazılım Geliştirme

Yazılım geliştirilirken göz önünde bulundurulması gereken konulardan biri de uygulamanın geliştirilebilir olması ve bağımsız geliştiricilerin uygulamaya katkılarına destek sağlanması konusudur.

Bu tür uygulamalara en güzel örnekler internet tarayıcıların eklenti desteği ile vardıkları mükemmel özelliklerdir. C# dilinde de bu destek kolaylıkla, geliştirilen uygulamalara eklenebilir. Eklenti (Plugin) desteğinin uygulamaya nasıl eklendiğini öğrenmek için aşağıdaki videoya göz atabilirsiniz.




C# User Control Nedir ve Nasıl Oluşturulur

Windows form veya web form geliştirirken çoğu zaman .Net standart kütüphanesi ile gelen kontroller (buton, textbox vs.) yeterli olsa da özellikle projede geliştirilen sınıflara özgü görsel kontrol geliştirme gerekmektedir. Bu durumlarda User Control dediğimiz konu devreye girmektedir.

Örneğin bir sınav uygulaması geliştirilecek, bunun için en temel sınıfımız Soru sınıfı olacak. Soru sınıfına ait temel özellikle ise şunlar olacaktır.

  • Soru metni
  • Cevap şıkları (A,B,C,D,E)
  • Doğru cevap
  • Kullanıcının soruya verdiği cevap

Bu durumda 20 soruluk bir test için 20 tane metin alanı, 5 şıktan 20 soru için 100 radiobutton vs. kontrol eklenmesi gerekecektir. Tabi bütün bunları kontrol edecek kodlar. Bir sürü iş yani 🙂 Bütün bu kargaşa yerine yapılabilecek çözüm soru sınıfı için bir user control oluşturmak ve bir soru için gereken tasarımı yaptıktan ve ilgili kodları yazdıktan sonra her soru için bunu kullanmak.

Aşağıdaki videomuzda user controlun nasıl tanımlandığını ve kullanımı ile ilgili ayrıntılı bilgi bulabilirsiniz.




C# Forma Kısayol Ekleme

Yazılım geliştirilirken göz önünde bulundurulması gereken noktalardan biri de kullanıcı deneyimidir. Kullanıcı deneyiminde de ilk sırada efektif olarak oluşturulmuş kısa yollardır.

Form üzerinde kısayol tanımlanabilmesi için formun KeyPreview özelliğinin True olarak ayarlanmış olması gerekmektedir.

Bu özelliğin ayarlanmasından sonra forma ait KeyDown olayının (Event) ayarlanması gerekmektedir. Parametrede yer alan KeyEventArgs parametresi basılan tuşlara ait bilgileri tutmaktadır.

Örnek 1:

private void MyForm_KeyDown(object sender, KeyEventArgs e)
{
 if(e.Modifiers == Keys.Control && e.KeyCode == Keys.N)
 {
 // (Ctrl+N) tuşlarına basıldığında yapılması istenen işlemler
 }
}

Örnek 2:

private void MyForm_KeyDown(object sender, KeyEventArgs e)
{
 if (e.Control && e.Shift && e.KeyCode == Keys.O)
 {
 // Ctrl+Shft+O tuşlarına basıldığında yapılması istenen işlemler
 }
}

Aşağıdaki videodan konuyu daha ayrıntılı inceleyebilirsiniz.




C# Çoklu Form Uygulamaları ve Formlar Arası Veri Alış Verişi

Geliştirilen uygulamaların nerede ise tamamında birden fazla ekran kullanılmaktadır. Bu yazımızda birden fazla ekran içeren uygulamalarda ekranların beraber kullanılması ve ekranlar arası veri alış verişini inceleyeceğiz.

Bir ekranda iken ikinci bir ekranı açmak için iki metot bulunmaktadır. Bu metotlar ve açıklamaları;

  • [Form].Show() : Açılacak form açıldıktan sonra ana form kullanılmaya devam edilebilir şekilde açılır.
  • [Form].ShowDialog(): Açılacak form, açıldıktan sonra ana form kullanılamaz. Açılan form kapandıktan sonra ana form kullanılabilir. Kullanıcıya soru sorulacağı zaman çoğunlukla kullanılır. Bununla ilgili MessageBox yazımızı inceleyebilirsiniz.

İki metotta da öncelikle açılacak formu bir örneği oluşturulduktan sonra ihtiyaca göre Show veya ShowDialog metotları ile form açılır.

Form form1 = new Form1();
form1.Show();

Aşağıdaki videomuzda çoklu form uygulamaları ve formlar arası veri alış veriş yöntemlerini ayrıntılı şekilde bulabilirsiniz.




C# Console Komisyon Hesaplama

Bir komisyoncu sattığı mallardan fiyatı 50 TL kadar olanlardan %3, daha fazla olanlardan ise %2 komisyon almaktadır. Klavyeden girilen teker teker girilen 5 malın komisyonlarını bulup ekrana yazdıran ve en sonunda da toplam komisyonu ekrana yazdıran programını yazınız.

https://github.com/saitorhan/SizdenGelenler05




(C# Console, Diziler) Meteoroloji Sıcaklık Analizi

Meteoroloji merkezi için bir program tasarlanılması istenilmiştir. Programın çalışma şekli ise şöyle olmalıdır:

a. İlk önce hangi ay için sıcaklık bilgisi girileceği kullanıcıya sorulacaktır.

b. Girilen ay bilgisine uygun olarak o ayda kaç tane gün var ise kullanıcıdan gün sayısı kadar sıcaklık bilgisi girilmesi istenilecektir (şubat ayı için gün sayısını 28 alınız).

c. Sıcaklık veri girişi bittikten sonra o ayın sıcaklık ortalaması ve en düşük sıcaklık bilgisi ekrana yazdırılacaktır. Bu işlemden sonra program sonlanacaktır. Örnek Çıktı: Şubat Ayına ait Ortalama Sıcaklık=15,6 derecedir ve En düşük sıcaklık 6.Gün=10, 1 derecedir.

https://github.com/saitorhan/SizdenGelenler04




C# Console Toplama İşlemi Oyunu

Toplama işlemini öğretmeye çalışan bir oyun programı yazılacaktır. Oyun başladığı zaman rastgele 2 tane 1-100 arasında sayı tutulacak, tutulan sayılar ekrana gösterilecek ve kullanıcıya bu sayıların toplamı nedir diye sorulacaktı Eğer kullanıcı doğru cevap verirse “Tebrikler Bildiniz” Değil ise “Üzgünüm Bilemediniz” diye mesaj verecektir. Her cevaptan sonra “Tekrar Oynamak istiyormusunuz(e/E)?” şeklinde bir soru sorulacak ve eğer kullanıcı “e” veya “E” ile karşılık verirse oyun tekrar başlayacaktır. Kullanıcının puanı her doğru cevap için 5 puan artacak, her yanlış cevap için ise 2 puan azalacaktır. Oyun sonlandığında kullanıcının verdiği doğru cevap sayısı, yanlış cevap sayısı ve puanı ekranda listelenmelidir. Bu işlemleri yapan programın C# kodlarını yazınız.

https://github.com/saitorhan/SizdenGelenler03




C# Sayıyı Basamaklarına Ayırma

Klavyeden girilen herhangi bir sayıyı basamaklarına ayırıp her bir basamak değerini ve sayının kaç basamaklı olduğunu ekrana yazan C# programını yazın? Not: Hazır string ya da char fonksiyonlar kullanmayın. Girilen sayının basamak sayısı belli değildir. Her hangi bir sayı girildiğinde program doğru bir şekilde çalışmalıdır. Örneğin 123 girilmişse programın ekran çıktısı: 1 tane 100’luk, 2 tane 10’luk, 3 tane 1’lik; sayı 3 hanelidir şeklinde olmalıdır.

https://github.com/saitorhan/SizdenGelenler02




C# Rastgele Sayı Dizisi Oluşturup Ortalamaya En Yakın X Adet Sayıyı Ekrana Gösterme

Klavyeden girilen başlangıç ve bitiş değerleri arasında, klavyeden girilen sayı kadar rastgele tek sayı üretip bu sayılardan ortalamaya en yakın olan x adet sayıyı ekrana yazdıran C# programını yazınız?

https://github.com/saitorhan/SizdenGelenler01