Forum
Arkadaşlar C# windowsform projemde sona yaklaştım. Ancak detaylı bir yetkilendirme işlemini nasıl yapacağım konusunda biraz karmaşa yaşıyorum. Projemde 10 kadar form 20 kadar usercontrol bulunmakta ve usercontrolleri tabpage içinde açmaktayım. Ben hem menü anlamında hemde menülerin içindeki her bir buton için ayrı yetkilendirme tasarlamak istiyorum. yetki ataması yaparken bu usercontroller içindeki menüleri nasıl listeleyip bunların görünüp görünmemesi üzerine bir kurgu yapabilirim. elinde örnek bir çalışması olan veya tavsiyesi olan arkadaşlarım paylaşırsa çok yardımcı olur.
Bunlar için hazır NuGet'lar var kullanabilirsiniz ama ilk başlarda hakim olmak zor olabilir diye düşünüyorum. Başlangıç seviyesinde düşündüğünüz kriterler bazında yani "tab page" ve "user control" bazından birbirine bağlı olacak şekilde ana tablo da "role" olacak şekilde içine kullanıcı eklenerek veritabanınıza ekleme yapıp açılış esnasında ya da tıklama anında ilgili kullanıcı adından bu tabloya sorgu atıp yetki kontrolü yapabilirsiniz. İlgili sayfa ve kontrolleri de isim bazından ekleme yapabilirsiniz ya da CRUD button işlevleri olarak daha kısa bir şekilde de "base" olarak da kontrol yaptırabilirsiniz.
Uğur bey cevabınız için teşekkür ederim. Ana formumda bulanan tabpage içinde usercontrolleri göstererek işlemlerime devam ediyorum. her toolstripmenu için bir id ve her menu items için ayrı bir id tanımladım. bütün bunları veri tabanında bir tablo saklayarak buradan yetkilendirme işlemi yürüteceğim. ancak şuanda ana sorunsalım şu bu yetkilendirme için bir class oluşturdum ancak tabpage içinde açtağım usercontrollerin denetimlerine hiçbir şekilde erişemiyorum!! bununla ilgili bir kaynakta bulamadım. farklı bir formdan veya bir class içinden hedeflenen usercontrolün button veya textlerine nasıl erişebilirim.
Merhaba, sorunuzu yanlış anlamadıysam ve klasik bir mimaride proje geliştirdiğinizi düşünecek olursam ulaşmak istediğiniz controller'a "Modifiers" özelliklerini proje yapınıza göre "public" ya da "protected internal" yaparak FormClassName.ControlName mantığında erişim sağlayabilirsiniz, yani Form1.txtAd şeklinde.
Aynen klasik mimari de büyük olmayan bir projem var. Tabpage içinde birden fazla User Controller leri sayfa sayfa açtığım için önce o tabpage e odaklanmak mı gerekiyor? Açık olan User Control hangisi bile bilmem için?
Anaformum üzerinde bulunan menüden yine aynı form içindeki tabpage içinde gösteriyorum user controlleri. kod aşağıdaki gibi.
private void MenuKBHesapDonemleri_Click(object sender, EventArgs e) { XtraTabPage yenisayfa = new XtraTabPage(); yenisayfa.Name = "tabKBHesapDonemleri"; yenisayfa.Text = "Hesap Tablosu"; foreach (XtraTabPage item in TabControl1.TabPages) { if (item.Name == "tabKBHesapDonemleri") { TabControl1.SelectedTabPage = item; return; } } TabControl1.TabPages.Add(yenisayfa); int yenieklenensayfa = TabControl1.TabPages.IndexOf(yenisayfa); UserKBHesapDonemleri usercontrol = new UserKBHesapDonemleri(); usercontrol.Name = "KBHesapDonemleri"; yenisayfa.Controls.Add(usercontrol); usercontrol.BringToFront(); usercontrol.Dock = DockStyle.Fill; TabControl1.SelectedTabPageIndex = yenieklenensayfa; }
Tab page oluşmadığı için usercontrolname'e erişemiyorum menüyü gizleyemiyorum. bunun yerine menü görünsün ama tıklama aşamasında yetki kontrolü yapayım dedim onda da butona tıklıyorum ama bir türlü usercontrol adına erişemedim. her iki şekilde de tabpage ortada olmadığı için erşim sağlayamadım. bu sorunu nasıl aşabilirim?