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


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

مفهوم رویداد

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

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

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

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

MouseClick

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

private void Form1_MouseClick(object sender, MouseEventArgs e)
{

}

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

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

به جای نام فرم می‌توان از کلمه 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 هر شیء ورودی که قابلیت کلیک داشته باشد روی عنصر کلیک کند متد اجرا می‌شود.

 

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


نظر بدهید

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

مشخصات دوره


مدرس دوره : مهدی احمدی
تعداد جلسات 26 جلسه
مدت زمان 538 دقیقه
حجم دوره 1/24 گیگابایت
سطح مهارت مقدماتی
وضعیت دوره درحال برگزاری
تعداد دانشجویان 242
: میانگین امتیاز

رایگان
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی احمدی
مهدی احمدی

درباره مدرس :

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