View Full Version : دسترسی به شیء فراخوانی كننده
m-khorsandi
یک شنبه 17 خرداد 1388, 18:15 عصر
چطور ميتونم از كلاسی به يك پراپرتی از فرم اصلی دسترسی داشته باشم؟
__H2__
دوشنبه 18 خرداد 1388, 15:16 عصر
سلام
در VB.Net میتوان از دستور My.Application.ApplicationContext.MainForm استفاده کرد. (به شرط از کار فعال بودن فضای My)
=====
ولی راه منطقی و اصول شی گرایی آن است که اشاره گر را در قالب یک property و یا در سازنده کلاس به آن متقل کنید.
مثلاً به الگوی زیر دقت کنید:
public class Class1
{
private System.Windows.Forms.Form m_Form;
public Class1(System.Windows.Forms.Form form)
{
this.m_Form = form;
}
//...
public void test(...)
{
this.m_Form.XXXXX = YYYYY;
}
}
//...
public class frmMain : System.Windows.Forms.Form
{
//...
Class1 x = new Class1(this);
x.test(...);
//...
}
=====
ولی اگر فقط و فقط میخواهید این عمل را روی فرم اصلی و تک برنامه انجام دهید، میتوانید فایل Program.cs را بدین شکل تغغیر دهید:
(برای سایر فرمها اینکار چندان منطقی نیست و با اصول برنامه نویسی ساختار سیافته مقایرت پیدا میکند.)
public static class Program
{
private static System.Windows.Forms.Form m_MainForm;
internal static System.Windows.Forms.Form MainForm
{
get { return m_MainForm; }
}
[STAThread]public static void Main()
{
System.Windows.Forms.Application.EnableVisualStyle s();
System.Windows.Forms.Application.SetCompatibleText RenderingDefault(false);
m_MainForm = new Form1();
System.Windows.Forms.Application.Run(m_MainForm);
}
}
1- به جای System.Windows.Forms.Form میتوانید نام کلاس فرم اصلی برنامه را تایپ کنید.
2- حالا در هر کجای برنامه نیاز به فرم اصلی داشتید با دستور Program.MainForm در دسترس خواهد بود.
=====
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.