PDA

View Full Version : سوال: نوشتن رویداد جدید



IMANAZADI
شنبه 10 دی 1390, 22:28 عصر
با سلام خدمت دوستان
میخواستم ببینم چطوری میشه یک رویداد جدید توی USER CONTROL واسه مثلا یک تکس باکس نوشت که وقتی توی یک فرم استفاده میکنم اون رویداد توی لیست رویداد ها باشه
بطور مثال رویداد دابل کلیک هست
من میخوام یک رویداد واسه تکس باکس بنویسم که وقتی دو بار کلید TAB فشار داده شد یک پیام نشون بده
با تشکر

Parham.D
یک شنبه 11 دی 1390, 08:41 صبح
سلام
من متوجه نشدم منظور از دوبار کلید Tab زدن چی هست! به نظرم نمیشه برای هر واکنشی روی کیبرد رویداد نوشت. حالا من روش اضافه کردن یک رویداد ساده را برای شما انجام دادم که برای TextBox با مشخصه Multiline و در یک UserControl کار میکند. به ازاء هر دو بار Tab زدن یک پیام صادر میشه.

اول کدهای زیر رو توی UserControl قرار بدید.



int TabCount = 0;
bool TabTest = false;

public delegate void TabEventHandler(bool TabCount);
public event TabEventHandler TabHandel;

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (TabHandel != null)
{
if (TabCount < 2)
{
if (e.KeyCode == Keys.Tab)
{
TabCount++;

if (TabCount == 2)
{
TabTest = true;
}
}
if (TabTest)
{
TabHandel(TabTest);
TabTest = false;
TabCount = 0;
}
else
{
TabHandel(TabTest);
}
}
}
}


وقتی Solution را Rebuild کردید رویداد بالا به مجموعه رویدادهای User Control اضافه میشه، به نام TabHandel. حالا در فرم برنامه که کنترل جدید به آن اضافه شده داریم:



private void userControl11_TabHandel(bool TabCount)
{
if (TabCount)
{
MessageBox.Show("You press tab key two times");
}
}


موفق باشید.

IMANAZADI
یک شنبه 11 دی 1390, 09:01 صبح
با تشکر از شما دوست گرامی
ولی آیا واقعا نمیشه هر رویدادی رو که خواستی بنویسی
مثلا بجای دابل کلیک 3 بار کلیک

Parham.D
یک شنبه 11 دی 1390, 09:39 صبح
تا آنجا که میدانم نمیشه. برای مثال شما باید تعداد کلیکها را شمرد!!