C# ile Settings File Kullanımı


12 Ağustos 2012 Hikmet Okumuş C#

Merhaba Arkadaşlar, C# ile settings dosyası kullanımı hakkında kısa bir bilgi aktarıcam. Anlatıma geçelim.
1. Öncelikle hali hazırda projemizde bir tane settings dosyası bulunmaktadır. Properties altında Settings.settings adı ile bulunmaktadır. Eğer isterseniz kendiniz ayrı bir settings dosyası ekleyerek kullanabilirsiniz.
2. Kullanımına geçelim. Öncelikle setting dosyasını açalım. Biraz settings dosyasının alanlarından bahsedelim. Name, Type, Scope, Value alanlarınının açıklayalım.
Name:Tanımladığımız değişkenin adını ifade etmektedir. Örn: deneme Type: Tanımladığımız değişkenin tipini ifade etmektedir. Örn: string Scope: Tanımladığımız değişkenin kullanım alanını ifade etmektedir. İki tane değere sahiptir. 1. si User 2. si Application. User ile tanımladığımız değerler, kullanıcı tarafından değiştirebilen değerler için kullanılmakta (Get - Set edilebilir), Application ile tanımladığımız değerler ise sadece okunabilir olarak kullanılabilmektedir (sadece Get edilebilir). Value: Tanımladığımız değişkenin almış olduğu değeri ifade etmektedir. Örn: "Kitap"
3. Uygulamaya geçelim. Şimdi Name alanına CheckDurum ekleyelim. Type kısmını bool yapalım. Scope' ta User' ı seçelim. Son olarak Value' da True değerini seçelim. Bir adet değer tanımladık. Şimdi programımızda bir adet CheckBox olsun ve programı başlattığımızda burada ki değere göre seçili olsun yada olmasın. Aynı zamanda çalışma anında durumunu değiştirip kayıt edelim. Tekrar programı çalıştırdığımızda son durumuna göre seçili olsun yada olmasın.
4. Programımızın Load eventına aşağıda bulunan kodu yazıyoruz.
checkBox1.Checked = Properties.Settings.Default.CheckDurum;
5. Settings dosyasının durumuna göre checkbox' ımız seçilecektir. Şimdi çalışma anında settings dosyamızdaki değerimizi set edelim. Button' a tıkladığımızda checkbox ın checked durumu ne ise o değeri kayıt edelim. Aşağıdaki kodu button' un click olayına yazıyoruz.
private void button1_Click(object sender, EventArgs e)
        {
            Properties.Settings.Default.CheckDurum = checkBox1.Checked;
            Properties.Settings.Default.Save();
        }
Burada önemli olan settings dosyasına değeri atatıktan sonra Save() metodu ile set işlemini sonlandırmak.
Bu şekilde settings dosyasını kullanarak ayarları get - set edebilirsiniz. Diğer tüm tiplerinde kullanımı bu şekilde olmaktadır.

Başarılar dilerim.



Kullanıcı Yorumları

hikmet okumuş makale yorum
ismail
20.09.2014 01:35:16

merhaba
formumda tabcontrol ve tabpage ler var ben settings ile kulanıcının sadece kendisinin yani verdiğim değişkenin tabpage ini gormesini saglamaya calısıyorum fakat bana yeni tabpage olusturup isminide değişkenin değerini yazıyor bunu string olarak değilde tabpage olarak nasıl gosterrirm
kodlarım asagıda

tabControl2.TabPages.Clear();
tabControl1.TabPages.Add(tab520);
tabControl1.TabPages.Add(Settings1.Default.teshirmagaza);
yardımınız için tesekkurler

hikmet okumuş makale yorum
Hikmet Okumuş
23.09.2014 14:34:40

Merhaba,

Settings içerisinde ilgili kullanıcıya göstermek istediğiniz TabPage' in Name değerini saklayın. Veri tipi string olacaktır. Daha sonra aşağıdaki gibi bir kontrolle sadece Settings içerisinde saklanan TabPage görünecektir.

foreach (TabPage page in tabControl1.TabPages)
{
if (!page.Name.Equals(Properties.Settings.Default.ShowPage))
tabControl1.TabPages.Remove(page);
}

hikmet okumuş makale yorum
Musa Köşker
19.11.2017 14:59:53

Sade ve net anlatım için teşekkürler.

hikmet okumuş makale yorum
Mehmet Zeytinci
8.10.2018 11:10:50

 Vs 2017 community de, Settings.settings dosyasını yada kendimizin oluşturduğu ayarlarmız.settings dosyasını, kod sayfasında görmüyor.

Using namespace adı.properties; 

Ekleyince settings dosyalarını görüyor. Vs2010 da böyle değildi.

Bunun bir sebebi var mı?

Saygılar

hikmet okumuş makale yorum
Hikmet Okumuş
11.10.2018 23:24:36

Merhaba Mehmet Zeytinci,

Visual Studio versiyonlarına göre kullanımı değişmemektedir. Büyük olasılıkla namespace bilgisini hatalı giriyor olabilirsiniz. Doğruluğundan emin olmak için settings dosyanızı solution explorer üzerinden genişleterek Settings.Designer.cs dosyasından namespace adını kontrol edebilirsiniz.

hikmet okumuş makale yorum
Osman Tanca
7.02.2020 10:07:18

Selamlar Hikmet bey,

Geliştirdiğim projemde tab-control sayfamda 3 adet tab page bulunuyor, Verileri kaydetmek istediğimde ilk tab page hariç diğer tab page bölümlerine tıklamadığımda diğer tab page ekranında yer alan ilk değişkende hata veriyor, kaydetme işlemi yapmadan önce bu sayfalara bir kez tıkladığımda sorunsuz kayıt yapabiliyorum, nedeni ne olabilir sizce? Aldığım hata "System.FormatException: 'Giriş dizesi doğru biçimde değildi.'" bu şekilde fakat değişken tanımlarında vs. hiçbir sorun yok, bu hatayı tab page kullandığımda alıyorum.

 

hikmet okumuş makale yorum
Hikmet Okumuş
7.02.2020 10:12:06

Merhaba Osman Tanca,

Hata aldığın kod bloğunu paylaşabilir misin ?

hikmet okumuş makale yorum
Osman Tanca
7.02.2020 10:19:55

Selamlar tekrar,

Yaklaşık 200 değişkenim var ve oldukça uzun, bu sebeple burada paylaşmam pek mümkün görünmüyor, genel olarak yorum yapma şansınız olursa sevinirim, farklı tab page ekranlarında veritabanına kayıt yapmak veya değişken kullanma yöntemleri vb. linkleri araştırıyorum, bir şekilde çözülecek ama uğraştırıyor.

hikmet okumuş makale yorum
Hikmet Okumuş
7.02.2020 10:32:53

Selamlar,

Parse hatası yapıyor olabilirsiniz. Örnek vermek gerekirse;

int value = int.Parse("Test");

Buradaki gibi hatalı bir parse işleminde benzer hatayı alırsınız. String ifadeleri parse ettiğiniz yerleri incelemenizi tavsiye ederim.



Yorum Ekle