تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[C#.NET] تعديل خصائص فورم من فورم أخر
#1
االسلام عليكم و رحمة الله

أعضاء منتدانا الغالي
سؤالي هو كيفية التحكم في فورم أو فورمات  و تعديل بعض الخصائص كالقوائم و الأزرار و تعطيل أو تفعيل بعض المهام من فورم اخر  و للتوضيح أكثر فمشروعي عبارة عن برنامج متعدد المستخدمين (مدير البرنامج  , رئيس مكتب ,عون مكتب....الخ)
و لكل مستخدم منهم صلاحيات معينة مسجلة في قاعدة بيانات المستخدمين الخاصة بالبرنامج بحيث يقوم كل مستخدم بمهام معينة في البرنامج
[rtl]المشكل الذي صادفته و لم أعثر على حل له في النت و في المنتدى هو كيفية  تعديل خصائص الفورم  كالقوائم و الأزرار و تعطيل أو تفعيل بعض المهام بحسب صلاحيات  المستخدم فعندما يقوم المستخدم بإدخال الاسم و كلمة السر في فورم الدخول  login  [/rtl]

يقوم الفورم  login  بالتعديل في الفورم  بحسب صلاحيات  المستخدم الحالي   و نفس الشيء بالنسبة للفورم الأخرى و هي بالطبع تكون غير  مفعلة اي لسيت قيد الإستخدام                                                                     و شكرا جزيلا لكم


[rtl] [/rtl]




[rtl] [/rtl]

الرد }}}
تم الشكر بواسطة:
#2
نحمده ونصلي على رسوله الكريم

في حال اردت الوصول لبعض الادوات في نموذج اخر يلزم تغيير الوصول للادوات من private الى internal ولكن هذا الامر يثقل البرنامج ويزيد من حجمه في الرام ولا ينصح بذلك الا للضرورة....
هناك حل اخر بعمل فئة جديدة class نضع فيها بعض الخصائص للصلاحيات كـ:

كود :
class Role
{
internal static bool Add { get; set; }
internal static bool Delete { get; set; }
}

هذا في الفئة، أما في نموذج تسجيل الدخول:
كود :
Role.Add = User.Add;
Role.Delete = User.Delete;

وفي النموذج الرئيسي:


كود :
private void MainForm_Load(object sender, EventArgs e)
{
button1.Enabled = Role.Add;
....
}
الرد }}}
تم الشكر بواسطة: info@cnr
#3
السلام عليكم و رحمة الله

احسن الله اليك اخي ربيع
هل تقصد انشاء فئة جديدة class نضع فيها الخصائص للصلاحيات بحيث تكون شبيهة تماما لقاعدة البيانات و عند دخول المستخدم نقوم بنسخ الصلاحيات من قاعدة البيانات في class مثلا:
.database.add= Role.Add
.database.del= Role.del

لك جزيل الشكر
الرد }}}
تم الشكر بواسطة:
#4
نحمده ونصلي على رسوله الكريم

نعم هو ذاك...
قم بانشاء فئة class واضف اليها جميع الخصائص التي تريد مع جعلها مشاركه static وعند تسجيل الدخول قم باسناد القيم من قاعدة البيانات الى هذه الخصائص حسب كل مستخدم يسجل دخوله، مثلا لو كان هناك مستخدم مسموح له الاضافه والتعديل وليس مسموح له الحذف، سنجعل الخاصيات في هذه الفئة تساوي ذلك ثم في حدث تشغيل النموذج الرئيسي نقوم باسناد هذه القيم للادوات، كمثال:

كود :
class Role
{
    internal static bool Add { get; set; }
    internal static bool Edit { get; set; }
    internal static bool Delete { get; set; }
}

نموذج تسجيل الدخول (LoginForm):

كود :
private void button1_Click(object sender, EventArgs e)
{
    Role.Add = database.Add;
    Role.Edit = database.Edit;
    Role.Delete = database.Del;
}
النموذج الرئيسي (MainForm):

كود :
private void MainForm_Load(object sender, EventArgs e)
{
    button1.Enabled = Role.Add;
    button2.Enabled = Role.Edit;
    button3.Enabled = Role.Delete;
}
الرد }}}
تم الشكر بواسطة: info@cnr
#5
Angel
جزاك الله كل خير اخي ربيع شكر موصول لك
Big Grin
ليكن دائما هدفك من التعلم منفعة اخوانك المسلمين
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم