PDA

View Full Version : سوال: این پیغام خطا واسه چیه؟ (Object reference not set to an instance of an object)



rezayeman
یک شنبه 04 خرداد 1393, 08:20 صبح
سلام به دوستان گرانقدر

من جدول دارم تو دیتابیس که دسترسی کاربر به کنترلهای داخل فرم را مشخص میکنه. وقتی میخوام مقدار visible واسه کنترلو دستکاری کنم این خطا رخ میده. کجای کارم اشتباهه؟

119444

Davidd
یک شنبه 04 خرداد 1393, 09:11 صبح
اين خطا داره ميگه كه شي مورد نظر تعريف شده ولي نمونه سازي (new) نشده. حالا اين ميتونه مربوط به كنترل هاي روي فرم باشه يا شي ac.
كنترل هاي روي فرم بعد از تابع InitializeComponent() كه در سازنده فرم فراخواني ميشه، نمونه سازي مي شوند. بنابراين اين كد بايد بعد از فراخواني اين تابع اجرا شود.

rezayeman
یک شنبه 04 خرداد 1393, 10:05 صبح
مشکلم حل شد. من از sidebar توی فرم استفاده میکنم. و contrl برای فرم با control برای sidebar با هم فرق دارن و از یک نوع نیستن واسه همین error میداد. درستش کردم مرسی از لطفتون

private void UserAccess()
{
foreach (UserAccessClass ac in UserAccessClass.GetUserAccessList(UserName))
{
foreach (DevComponents.DotNetBar.SideBarPanelItem panel in this.sideBar1.Panels)
{
if (ac.frmName == panel.Name) panel.Visible = ac.Access;

foreach (DevComponents.DotNetBar.ButtonItem button in this.sideBar1.Panels[panel.Name].SubItems)
{
if (ac.CTRLName == button.Name) button.Visible = ac.Access;
}

}

}
}