0

آموزش های مرتبط با # c

 
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:آموزش های مرتبط با # c
سه شنبه 22 اردیبهشت 1394  1:47 AM

What Is Program.Cs ?
سلام دوستان.
توی این پست میخوام توضیحاتی درمورد Program.Cs در پروژه بدم.
Program.Cs چیه ؟
Program.Cs یک کلاس هست که تابع Main برنامه اونجا قرار داده شده.
کد PHP:
static void Main() 
        { 
            Application.EnableVisualStyles(); 
            Application.SetCompatibleTextRenderingDefault(false); 
            Application.Run(new Form1()); 
        }  
همونطور که میدونید اولین تابعی که توی برنامه اجرا میشه تابع Main هست که توی Program.Cs تعریف شده.
میرسیم به اولین خط :
کد PHP:
Application.EnableVisualStyles();  
به صورت خیلی ساده Visual Style های برنامه رو فعال میکنه !
سوال :
Visual Style چیه ؟
بزارین توی عکس نشون بدم :
کد PHP:
Application.EnableVisualStyles();  
 
کد PHP:
 //Application.EnableVisualStyles();  
 
خب فرقشو کاملا متوجه میشیم !
خب میریم سراغ خط دوم ! :
کد PHP:
Application.SetCompatibleTextRenderingDefault(false);  
خب تابع این کد اینه :
کد PHP:
public static void SetCompatibleTextRenderingDefault( 
    bool defaultValue 
)  
کارش چیه ؟
در دات نت فریمورک 1.0 و 1.1 برنامه های ویندوز فرم ,متن خودشونو با استفاده از کلاس Graphics که در GDI + graphics واقع شده بود رو کنترل میکردند. این GDI + مبتنی بر graphics مشکلاتی در مسائل مربوط به performance (عملکرد) و localization(محلی سازی) بود.
در دات نت فریمورک 2.0 به بعد کلاس TextRender تعریف شد که مبتنی بر کتابخونه ی GDI graphics بود که غلبه میکرد بر مشکلات GDI + . همچنین متن ها در GDI وضعشون بهتر شد و فونت های بیشتری رو ساپورت میکردند.
محاسبه ی فاصله ی بین نوشته ها , قرار دادن کلمه ها و... در GDI و GDI + تفاوت قابل توجهی کردند.
خب حالا این همه قصه گفتم که ( :دی ! ) :
به طور پیشفرض خصوصیت UseCompatibleTextRendering مقدار false رو داره .اما در یک windows form application که از کلاس Graphics برای نمایش متن استفاده میکنه و داشتن کنترل خاصی که از کلاس TextRender برای نمایش متن ( که با application های دیگه فرق میکنه ) استفاده میکه , برای غلبه بر این ناسازگاری میتونین از UseCompatibleTextRendering رو مقدارشو true کنید ... در غیر اینصورت نیازی به تغییر در صدا زدن نیست !
خب آخرین خط ! :
کد PHP:
Application.Run(new Form1());  
تابعش اینه :
کد PHP:
public static void Run( 
    Form mainForm 
)  
فرم مشخص شده رو نمایش میده ! یعنی انگار برنامه رو ارجاع میده به form.designer.cs !
اگر یکم دقت کنید یک خط میبینیم در بالا ! :
کد PHP:
 [STAThread]  
این چیه ؟! 
STA = Single Thread Apartment
توضیح در این مورد خیلی خیلی زیاده ! من فقط یک خط میگم ! :
حمل کننده ی COM یعنی Component Object Model مایکروسافت ! ساختار و تعامل اجزای برنامه ! دقیقا مثل ستون فقرات ! AvtiveX , OLE و بقیه ی لایه های انتزاعی نرم افزار !
برای اطلاعات بیشتر هم میتونید از گوگل کمک بگیرید !
خب امیدوارم که این جلسه مفید بوده باشه !
موفق و پیروز باشید 

 

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

تشکرات از این پست
دسترسی سریع به انجمن ها