C# ta windows formda form ayarlarini nasil tutabilirim?

0

C# ta windows formda fakli kullanicilarin kullandigi bir projede her kullanii icin farkli form ayarlari sunmak istiyorum ornegin form rengini kullanicinin biri kirmizi biri mavi isteye bilir bunu nasil tutabilirim ?

 

c#
useyin useyin (1)
1 hafta önce sordu

Toplam 1 Cevap


0

Her şeyden önce söylemem lazım ki, windows form çok aktif olarak kullandığım bir sistem değil onun için bu işin doğru yolu bumu değil mi, bilmiyorum sadece işimi görmesi için zamanında hazırlamıştım, şimdi biraz değiştirerek senin ihtiyacına uygun bir hale getirdim.

 

- - - - -

 

Her kullanıcı için farklı ayarlar sunmak istediğini yazmışsın bu durumda tahminimce ya 2-3 kullanıcısı olan bir program hazırlıyorsun ya da her kullanıcıdan kastın kullanıcı gruplarıdır diye düşünüyorum onun için ben kullanıcı grupları referans alarak hazırladım, sen bunu istediğin gibi düzenleyebilirsin.

 

 

Yapacağımız işlemler şu şekilde:

  1. Kullanıcı ve dizayn bilgilerini tutacağımız bir class dosyası hazırlayacağız.
  2. Login sayfasında kullanıcının yetki bilgisini alacağız.
  3. Ortak kullanacağımız dizayn bilgilerini oluşturacağız
  4. Forma özel dizayn bilgileri oluşturacağız

 

 

Projemizi oluşturduktan sonra yeni bir class dosyası oluşturuyoruz:

  1. Project > AddClass
  2. Name bölümüne herhangi bir isim yazalım: Benim ki "Store.cs"
  3. Add butonu ile dosyamızı oluşturalım
  4. Oluşan dosya şu şekilde olmalı
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace App
{
    class Store
    {
    }
} 

 

"Store" sınıfının içine "Clearance" ve "Design" sınıfları oluşturuyoruz

public class Clearance
{
}

public class Design
{
}

 

Kullanıcının yetki bilgisinin üzerinde işlem yapmak için "Clearance" sınıfının içine "Set" ve "Get " metotları oluşturuyoruz

// Kullanıcı yetkisini ekleyeceğimiz bir metod oluşturuyoru
public void Set(string value) 
{
    // Elimizdeki veriyi tutmak için global bir değişken oluşturuyoruz
    AppDomain.CurrentDomain.SetData("Clearance", value);
    // "Clearance" ismi yerine istediğiniz bir isim verebilirsiniz
}

// Kullanıcı yetkisini alabileceğimiz bir metod oluşturuyoruz
public string Get() 
{
    // Tutuğumuz veriyi global değişkenden alıyoruz
    return AppDomain.CurrentDomain.GetData("Clearance").ToString(); 
    // Dönen değer obje olacağı için bu değeri kullanacağınız türe dönüştürmeyi unutmayın
}

 

Ortak kullanılacak dizayn bilgilerini formlara uygulamak için, "Design" sınıfının içine "Apply" metodu oluşturuyoruz

public void Apply(Form form)
{
    // Kullanıcının yetki bilgisine ulaşmak için gerekli sınıfı çağırıyoruz
    Clearance clearance = new Clearance();

    // Kullanıcın yetkisi kontrol etmek için if ile koşullar oluşturuyoruz
    if (clearance.Get() == "admin")
    {
        // formun arka planını kırmızı yapıyoruz
        form.BackColor = Color.Red;
        
        // Kullanıcı yetkisi admin ise buradaki tasarımlar geçerli olacak
    }
    else if (clearance.Get() == "user")
    {
        // formun arka planını mavi yapıyoruz
        form.BackColor = Color.Blue;
    
        // Kullanıcı yetkisi user ise buradaki tasarımlar geçerli olacak
    }
}
// Üzerinde işlem yapacağımız formu dışarıdan alıyoruz

 

 

Kullanıcı giriş yaptığı sırada, yetki bilgisini de programa kaydediyoruz

// Kullanıcının yetki bilgisini kaydetmek için gerekli sınıfı çağırıyoruz
Store.Clearance clearance = new Store.Clearance();

// Kullanıcının yetki bilgisini gönderiyoruz
clearance.Set(textBox.Text);

 

 

Ortak dizayn bilgilerini kullanmak istediğimiz formun load kısmına aşağıdaki kodları yazıyoruz

// Ayarlanan dizaynı kullanmak için gerekli sınıfı çağırıyoruz
Store.Design design = new Store.Design();

// "this" anahtar kelimesi ile bulunduğumuz formu metoda gönderiyoruz
design.Apply(this);  

 

 

Ortak dizayn bilgileri haricinde her hangi bir formda kullanıcın yetkisine göre özel bir işlem yapmak için "Design" sınıfının içine "Apply" metoduna benzer bir metodu o form için yazıyoruz, mesela "Home" formundaki butonu gizleyelim

 

Home formunun içine "Special" metodu oluşturuyoruz ve "load" kısmında kullanıyoruz

public void Special()
{
    Store.Clearance clearance = new Store.Clearance();


    if (clearance.Get() == "admin")
    {
        this.button.Visible = true;
    }
    else if (clearance.Get() == "user")
    {
        this.button.Visible = false;
    }
}

private void Home_Load(object sender, EventArgs e)
{
    Special();
}

 

enesmusakose enesmusakose (1)
6 gün önce cevaplandı

üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol