نوشته شده توسط
MasoudAdmin
با سلام به همه
من در برنامه وقتی کاربر لاگین می کند بر اساس نوع کاربری معمولی یا مدیر سیستم باید به یه سری از آبجکت های در فرم ها دسترسی یا عدم دسترسی داشته باشد.
من می خوام در فرم اصلی به بقیه آبجکت های فرم های دیگرم دسترسی پیدا کنم و خصوصیاتشون رو تغییر بدم.
ممنون میشم راهنمایی کنید.
با سپاس.
ابتدا در کلاس های فرم تون یک تغییری بدهید تا بتوانیم سریع و به سادگی به شیء فرمی که باز شده دسترسی داشته باشیم.
- در ابتدای کد کلاس فرم یک متغیر public static به نام Instance تعریف می کنیم تا مشخص کننده شیء فرم باشد.
- در متد سازنده کلاس آن متغیر Instance را با this مقدار دهی می کنیم.
public partial class Form1 : Form
{
public static Form1 Instance;
public Form1()
{
Instance = this;
InitializeComponent();
}
حالا در هر جایی از برنامه اگر بخواهید به فرم Form1 ای که باز شده اشاره کنید، Form1.Instance در دسترس شما است.
برای دسترسی به کنترل هایی که روی فرم قرار داده اید، در هنگام طراحی فرم روی آنها کلیک کرده و در پنجره Properties مشخصه Modifiers شان را از مقدار پیشفرض Private به Public تغییر بدهید.
مثلا اگر می خواهید از هر کلاس دلخواهی به Form1.Instance.textBox1.Text دسترسی داشته باشید، ابتدا در هنگام طراحی فرم Form1 کنترل textBox1 را انتخاب کرده و مشخصه textBox1.Modifiers را از Private به Public تغییر بدهید.
modifiers.png