PDA

View Full Version : سوال: event های form در C#



saghari
چهارشنبه 17 فروردین 1390, 21:28 عصر
با درود خدمت همه عزیزان
در VB.Net برای form یک سری event پیش فرض هست مثل init و .... که میشه توی اونها کد مورد نظر رو نوشت ولی تو C# من فقط ایونت load رو میبینم. حالا سوالم اینه که برای نوشتن کد تو ایونت Init مربوط به فرم باید چه کنم و کچا میتونم کدهای مربوط به ایونت Init رو بنویسم؟

قبلا از توجه شما سپاسگزارم

mehranmsba
چهارشنبه 17 فروردین 1390, 22:22 عصر
اصلا من ابونت init ندیدم!!!
اما اگر منظورتان راه اندازی یک سری پارامتر ها، متغیر ها و.. قبل از اجرای فرم است می توانید از Constractor فرم استقاده کنید مثلا:

public int i=0;
public Form1()
{
InitializeComponent();
i=25; //مثلا مقدار دهی کردم.
}


اگر دسترسی کلاس هم برای شما مهم نیست می توانید از Program.cs استفاده کنید و مقادیری استاتیک در کلاس فرمتان تعریف و در main آن ها را مقدار دهی یا هر کار دیگری که مایلید را انجام دهید.

اگر هم در راه اندازی خود فرم می توانید تعریف کنید که هیچ ولی سرعت باز شدن فرمتان بسته به سنگین شدن این چند موضوع کند خواهد شد.

موفق باشید.

saghari
چهارشنبه 17 فروردین 1390, 22:43 عصر
ضمن تشکر از توحه شما دوست عزیز. بطور کلی این تفاوت بزرگ بین VB و C# برام خیلی عجیب بود. در VB ما بطور پیش فرض برای فرم event هایی مثل Disposed - Error - Init - InitComplete - Load و ... رو داریم که میشه توشون کد نوشت ولی ظاهر در C# فقط load رو پیش فرض داریم (یا اینکه من هنوز نمیدونم چطور باید بهشون دسترسی داشت).
در واقع من معمولا تو برنامه هام آخرین کاربری رو که به سیستم وارد شده تو رجیستری مینوشتم و هر وقت کاربری میخواست به سیستم وارد شده تو ایونت init فرم کدی رو ران میکردم که رجیستری رو چک میکرد و اگه مشخصات کاربر اونجا بود اونرو میخوند. العان این کد رو تو C# کجا باید بنویسم؟

Directx
چهارشنبه 17 فروردین 1390, 23:03 عصر
فکر کنم منظورتون اینه
دوست عزیز برای مشاهده یا نوشتن کد برای اتفاقات هر کنترل می تونید روی events در پنل propertis کلیک کنید و با دوبار کلیک کردن روی هر event میشه کد مورد نظر رو برای اونها نوشت

ahrimaneahurai
چهارشنبه 17 فروردین 1390, 23:08 عصر
هم توی لود فرم و هم توی سازنده فرم. میتونید توی کلیک یک دکمه بنویسید.زیاد فرقی با vb نداره این چیزاش

saghari
چهارشنبه 17 فروردین 1390, 23:25 عصر
با سلام و تشکر از هر دو عزیز
خوب نکته اینجا بود. در VB موقعی که یک فرم به پروژه اضافه میکنیم یکسری از ایونت ها بطور پیش فرض به کد اضافه میشن مثل Init و غیره و اگه شمل رو فرم دبل کلیک کنید خیلی راحت به اونها دسترسی دارید و نیازی به استفاده از دکمه event در پروپرتی نیست. ولی در C# فقط ایونت Load بطور پیشفرض اضافه میشه و برای استفاده از بقیه ایونتها بصورتی که عرض کردم باید یکبار اونها بشکلی که عزیزان فرمودند به فرم اضافه کرد یا بصورت دستی کدش رو نوشت و بعد از اون به همون روشی که در VB قابل استفاده بود اینجا هم میشه استفاده کرد.

باز هم از توجه شما عزیزان ممنونم

Directx
چهارشنبه 17 فروردین 1390, 23:28 عصر
دوست عزیز وقتی شما هیچ کدی برای یه event خاص نداری یا نمی خوایی بنویسی چرا کد اضافه رو برنامه به فرم اضافه کنه؟؟؟

saghari
پنج شنبه 18 فروردین 1390, 12:46 عصر
دلیلش رو نمیدونم اما اگه یه پروژه vb ایجاد کنی و روی فرمت دبل کلیک کنی تو قسمت event ها لیست یکسری ایونت رو بطور پیش فرض اضافه شده میبینی که میتونی براش کد بنویسی. منم چون معمولا از این روش (بدلیل سریعتر بودن) بجای استفاده از دکمه ایونت در پروپرتی استفاده میکردم تو C# هم انتظار داشتم مشابهش رو ببینم که اینطور نبود.
بهرحال بازم از توجه شما سپاسگذارم