رویداد ها (Events) در سی شارپ
رویداد ها (Events) در سی شارپ
این پست در ادامه ی پست “ اضافه کردن کنترل ها با کد در #C ” میباشد.
بعد ازین که کنترلمان ساخته شد، برای اضافه کردن رویداد هایش میتوانین از کد زیر استفاده کنید.
1 2 | button1.Click += new System.EventHandler(button1_Click); private void button1_Click(object sender, EventArgs e) { // button1 was clicked } |
برای رویداد کلیک از EventHandler استفاده میکنیم همانطور که در کد دیده میشود.
یک راه دیگر برای اضافه کردن رویداد :
1 | button1.Click +=نام دلخواه; |
1 | private void نام دلخواهی که نوشته بودیم(object sender, EventArgs e) { // button1 was clicked } |
راه دوم راحت تر از راه اول است و میبینید که در تابعی که برای کلیک دکمه درست شده است از
1 | EventArgs |
استفاده شده است. برای این که بفهمید برای بقیه ی رویداد ها چه چیزی لازم است میتواندید دستی یک رویداد ایجاد کنید مانند همیشه که از پنجره properties و بخش Event، و ببینید که چه نوشته است و همان را کپی کنید.
من چند مورد را برای شما مینویسم.
MouseEnter,MouseHover,MouseLeave: EventArgs
MouseDown,MouseUP,MouseMove,MouseClick : MouseEventArgs
Paint : PaintEventArgs
KeyDown,KeyUP :KeyEventArgs
KeyPress : KeyPressEventArgs
خب فکر کنید ما آرایه ای از TextBox ها داریم.لازم نیست برای هر کدام از آن ها یک رویداد جدا نوشت. به صورت زیر عمل میکنیم :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 رویش اعمال شده یا اگر از رویداد کلیک استفاده میکردیم میشود تکس باکسی که رویش کلیک شده و آن تکس باکس محو میشد(نوشتیم
1 | OloginTxt.Visible=false; |
سلام
من می خواهم از یه حلقه مثلا for تعداد مشخصی افراد مثلا ۱۰ را از تکس باکس اول گرفته و یکی یکی مشخصات همدم را گرفته و در یک جدول قرار داده و بعد از اتمام با یکی از مشخصات منحصر به فرد مثل کد ملی و یا مد پستی قابل جستجو باشن لطفا راهنمایی بفرمایید