صفحه اصلی / دوره‌های آموزشی / آموزش ویندوز فرم سی شارپ، مقدماتی / رویدادهای فرم- بخش اول

رویدادهای فرم- بخش اول

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

جلسات دوره


          
22 دقیقه
رایگان
           
مهدی احمدی
مدرس:

مهدی احمدی

از سال 1380 برنامه نویسی را شروع کرده و از سال 90 در این زمینه تدریس میکنم .با زبانهای سی پلاس پلاس ، سی ،پاسکال ،VB ، سی شارپ ،اسمبلی، جاوا و .... کار کرده و آنها را تدریس کرده ام.هم اکنون نیز مشغول تدریس در دانشگاه هستم و مدتی است با سایت درسمن همکاری میکنم مشاهده رزومه

مفهوم رویداد

به هرگونه تغییرات فرم در حالت اجرا شامل تغییر اندازه، تغییر مکان، کلیک ماوس و ... روییداد گفته می‌شود. رویدادها را می‌توان به چند دسته تقسیم کرد.

  • رویدادهای مربوط به ماوس
  • رویدادهای مربوط به صفحه کلید
  • رویدادهای مربوط به باز و بسته شدن فرم
  • رویدادهای مربوط به تغییر ویژگیهای فرم
  • سایر رویدادها

رویدادهای فرم

حال در قسمت Event می‌توانیم همه رویدادهای فرم را مشاهده کنیم. اگر در مقابل هریک از این رویدادها دابل کلیک کنیم برای ما متدی ایجاد می‌کند که این متد در اثر اتفاق افتادن آن رویداد اجرا می‌شود.

MouseClick

حال قصد داریم که با کلیک کردن روی فرم، فرم تغییر کند. برای این کار ابتدا در مقابل رویداد MouseClick دابل کلیک کرده تا متد را برای ما بسازد.


 

حال هر تغییراتی که مورد نیاز ما باشد قابل اجرا است. ما قصد تغییر رنگ فرم را داریم، برای این کار باید درون متد، این دستور را بنویسیم. شکل کلی دستور به شکل زیر است.

نام فرم . ویژگی = مقدار جدید ;

به جای نام فرم می‌توان از کلمه this به معنای همین، استفاده کرد.

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
this.BackColor = Color.Red;
}

MouseDoubleClick

رویداد بعدی، رویداد MouseDoubleClick است که در هنگام دابل کلیک کردن ماوس متد خود را اجرا می‌کند.

private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.BackColor = Color.Red;
}

 

همان طور که مشاهده می‎کنیم درون پرانتز متد دومقدار sender و e وجود دارد که مقدار sender عنصری که رویداد بر روی آن اتفاق افتاده را مشخص می‌کند و مقدار e چیزی که موجب اتفاق افتان این رویداد بوده مانند کلیک چپ یا راست ماوس را مشخص می‌کند.

حال قصد داریم که با کلیک چپ روی فرم رنگ فرم قرمز و با کلیک راست رنگ فرم آبی شود. برای این کار درون متد MouseClick شرط قرار می‌دهیم که اگر e با کلیک چپ ماوس پر شده است رنگ فرم قرمز و اگر با کلیک راست ماوس پر شده رنگ فرم آبی شود.

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        this.BackColor = Color.Red; //قرمز
    }
    else
    {
        this.BackColor = Color.Blue;  //آبی
    }
}

MouseDown

هنگامی که کلید ماوس فشار داده شود رویداد MouseDown اتفاق می‌افتد.

 

MouseUp

هنگامی که کلید ماوس رها شود و بالا بیاید رویداد MouseUp اتفاق می‌افتد.

 

MouseEnter

اگر رویداد MouseEnter را برای هر عنصر فعال کنیم موجب می‌شود که هربار ماوس روی آن عنصر برود آن رویداد اتفاق بیافتد. حال می‌خاهیم زمانی که ماوس وارد فرم شد، مکان فرم به صورت تصادفی تغییر کند.  ویژگی Top فاصله فرم را از بالای صفحه و ویژگی Left فاصله فرم را از سمت چپ صفحه مشخص می‌کند.

private void Form1_MouseEnter(object sender, EventArgs e)
{
    Random r = new Random(); //تصادفی عدد
    int x, y;
    x = r.Next(0, 501);
    y = r.Next(0, 501);
    this.Top = y; //بالا از فاصله
    this.Left = x; //چپ از فاصله
}

MouseLeave

اگر رویداد MouseLeave فعال باشد هر گاه ماوس عنصر را ترک کند ان رویداد اتفاق می‌افتد. حال می‌خواهیم هرگاه ماوس فرم را ترک کرد برنامه پایان یابد.

private void Form1_MouseLeave(object sender, EventArgs e)
{
    Application.Exit(); //برنامه از خروج
}

MouseMove

اگر برای یک عنصر رویداد MouseMove را فعال کنیم، هنگامی که ماوس روی آن عنصر حرکت کند این رویداد اجرا می‌شود. حال ما قصد داریم که با حرکت ماوس روی فرم رنگ فرم به صورت تصادفی تغییر کند. متد FromArgb از کلاس Color موجب دریافت کد رنگ از ما به صورت مد AGB می‌شود که هر یک عددی بین 0 تا 255 هستند.

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    Random random = new Random(); //تصادفی عدد
    int r, g, b;
    r = random.Next(0, 256);
    g = random.Next(0, 256);
    b = random.Next(0, 256);
    this.BackColor = Color.FromArgb(r,g,b); // رنگ تغییر
}

MouseHover

اگر رویداد MouseHover برای یک عنصر فعال باشد، هرگاه ماوس روی آن عنصر بایستد این رویداد اجرا می‌شود. حال ما قصد داریم که اگر ماوس روی فرم ایستاد رنگ فرم مشکی شود.

private void Form1_MouseHover(object sender, EventArgs e)
{
    this.BackColor = Color.Black; //مشکی رنگ
}

Click و DoubleClick

تفاوت رویدادهای Click و DoubleClick با رویدادهای MouseClick و MouseDoubleClick این است که در رویداد های MouseClick و MouseDoubleClick تنها زمانی که ماوس روی عنصری کلیک کند متد اجرا می‌شود اما در رویدادهای Click و DoubleClick هر شیء ورودی که قابلیت کلیک داشته باشد روی عنصر کلیک کند متد اجرا می‌شود.

 

امید واریم که این آموزش برای شما مفید واقع شده باشد. در قسمت بعد قصد داریم که در کنار شما عزیزان با دیگر رویداد‌های مهم فرم آشنا شویم. لطفاً با ما همراه باشید...

نظرات دانشجویان

کاربر درسمن
محمد صالح پورطاهری

سلام خسته نباشین برای اینکه باهر کلید یک رنگ متفاوت در پس زمینه اجراشه از چه کدی استفاده کنیم

پشتیبانی 1
پشتیبانی 1

سلام دوست عزیز وقتتون بخیر، در این بخش به سوالات فنی و تخصصی پاسخ داده نمی شود، میتوانید در انجمن برنامه نویسی درسمن عضو شوید و در آنجا سورس کد بزارید، دوستان و کارشناسان در اسرع وقت پاسخگو شما هستند.

کاربر درسمن
Narges

یه سوال من وقتی از رویداد صفحه کلید میخواهم استفاده کنم وقتی از دکمه صفحه کلید استفاده میکنم عملیات باتن اجرا میشه ولی نمیخوام اینجوری باشه

پشتیبانی 1
پشتیبانی 1

سلام دوست عزیز وقتتون بخیر، لطفا سوال و قطعه کد خود را در انجمن برنامه نویسی درسمن بارگزاری کنید تا دوستان و کارشناسان به مشکل شما رسیدگی کنند.

نمایش بیشتر

نظر شما در تصمیم دیگران اثرگذار است.

لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.

برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.
ثبت نام

49