رویداد ها (Events) در سی شارپ

رویداد ها (Events) در سی شارپ

این پست در ادامه ی پست  “ اضافه کردن کنترل ها با کد در #C ” میباشد.

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

button1.Click += new System.EventHandler(button1_Click);
private void button1_Click(object sender, EventArgs e) { // button1 was clicked }

برای رویداد کلیک از EventHandler استفاده میکنیم همانطور که در کد دیده میشود.

یک راه دیگر برای اضافه کردن رویداد :

button1.Click +=نام دلخواه;
private void نام دلخواهی که نوشته بودیم(object sender, EventArgs e) { // button1 was clicked }

راه دوم راحت تر از راه اول است و میبینید که در تابعی که برای کلیک دکمه درست شده است از

EventArgs

استفاده شده است. برای این که بفهمید برای بقیه ی رویداد ها چه چیزی لازم است میتواندید دستی یک رویداد ایجاد کنید مانند همیشه که از پنجره properties  و بخش Event، و ببینید که چه نوشته است و همان را کپی کنید.

من چند مورد را برای شما مینویسم.

  • MouseEnter,MouseHover,MouseLeave: EventArgs

  • MouseDown,MouseUP,MouseMove,MouseClick : MouseEventArgs

  • Paint : PaintEventArgs

  • KeyDown,KeyUP :KeyEventArgs

  • KeyPress : KeyPressEventArgs

خب فکر کنید ما آرایه ای از TextBox ها داریم.لازم نیست برای هر کدام از آن ها یک رویداد جدا نوشت. به صورت زیر عمل میکنیم :

 TextBox[] LoginTxt = new TextBox[2];
            for(int i=0;i<2;i++)
            {
                LoginTxt[i] = new TextBox();
                LoginTxt[i].Size = new Size(230,20);
                LoginTxt[i].ForeColor = Color.PaleVioletRed;
                LoginTxt[i].Font = new Font("",12.0F, FontStyle.Regular);
                LoginTxt[0].Location = new Point(16, 96);
                LoginTxt[i].Location = new Point(16, 170);
                LoginTxt[i].BorderStyle = BorderStyle.None;
                LoginTxt[i].Enter += LoginTxt_Enter;
                LoginTxt[i].MouseDown += LoginTxt_MouseDown;
                panel1.Controls.Add(LoginTxt[i]);
            }
  TextBox OloginTxt;
 private void LoginTxt_Enter(object sender, EventArgs e)
 {
 OloginTxt = sender as TextBox();
 OloginTxt.Visible=false;
 }

OloginTxt (نام دلخواه) :

میشود تکس باکسی که رویداد Enter رویش اعمال شده یا اگر از رویداد کلیک استفاده میکردیم میشود تکس باکسی که رویش کلیک شده و آن تکس باکس محو میشد(نوشتیم

OloginTxt.Visible=false;

)

و اگر میخواهید همچین چیزی برای تکس باکس ها یا کنترل هایی که روی فرمتان دارید درست کنید (کنترل های هم نوع) می توانید همه ی آنا هارا سلکت کنید و در رویداد مثلا کلیک یه اسم دلخواه بنویسید و کد بالا رو بنویسید.

پایان این قسمت,

امیدوارم این آموزش مفید بوده باشه.

مطالعه بیشتر