PDA

View Full Version : سوال: اضافه کردن یک Event به لیست Event های یک کنترل



Mohsen229266
جمعه 26 آذر 1389, 13:03 عصر
با سلام خدمت دوستان
دوستان برای اضافه کردن یک Property به یک کامپوننت یا کنترل میتونیم بنویسیم

privatebool _LockColumn;

publicbool LockColumn
{
get
{
return _LockColumn;
}
set
{
_LockColumn = value;
}
}
privatestring _LockColumnIndex;

حالا چطوری میشه به یک کنترل یک ایونت اضافه کرد یعنی ایونتی که میخوایم اضافه کنیم رو به چه صورت باید بنویسیم؟

Rejnev
جمعه 26 آذر 1389, 15:01 عصر
delegate void OnColorChanged();
public event OnColorChanged ColorChanged;

حالا فرض کن میخوای وقتی مثلا رنگ شی تغییر کرد, قطعه کدی که توی رویداد نوشتی اجرا بشه:

int myColor;
public int MyColor
{
get { return myColor; }
set
{
myColor = value;
if (ColorChanged!=null)
{
ColorChanged();
}
}
}

برای استفاده از کلاس هم داریم:

MyClass m=new MyClass();
m.ColorChanged+=ColorChanged(c_change);
...
c_change()
{
console.write("colorchanged")
}

Mohsen229266
شنبه 27 آذر 1389, 08:34 صبح
ممنون دوست عزیز ولی این Error رو میده63753

منظورتون از کلاس و تعریف یک Object از کلاس چیه؟

خوب کلا دارم رو یک کلاس کار میکنم و یک کامپوننت درست میکنم میخوام چند تا ایونتم به لیست Events کنترلم اضافه بشه

Rejnev
شنبه 27 آذر 1389, 12:37 عصر
delegate رو هم public کن ببین درست نمیشه

Mohsen229266
دوشنبه 29 آذر 1389, 01:00 صبح
مرسی درست شد ولی میشه راهنمایی کنید چطور میتونم ایونت Text_Change رو به DataGridView اضافه کنم این کد رو

private void dataGridViewSpesific_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.TextChanged += dataGridViewSpesific_CellTextChanged;
}
private void dataGridViewSpesific_CellTextChanged(object sender, EventArgs e)
{

}

Rejnev
دوشنبه 29 آذر 1389, 12:53 عصر
گرید اختصاصی ای که ساختی رو انتخاب کن و در پنجره properties و رو تب events (علامت رعد و برق)، textchange ای رو که ساختی رو پیدا کن و روی اون دابل کلیک کن

Mohsen229266
چهارشنبه 01 دی 1389, 18:52 عصر
دوست عزیز به چه صورت باید این کدای بالا رو در کلاس DataGridview بنویسم که ایونتی که می خوام به لیست ایونت ها اضافه بشه مثل همون مثال ColorChanged که نوشتید

Rejnev
چهارشنبه 01 دی 1389, 19:04 عصر
یک کلاس بساز و از دیتا گرید ویو ارث بری کن

Mohsen229266
چهارشنبه 01 دی 1389, 20:30 عصر
دوست عزیز من فایلم رو میزارم وقت کردید یه نگاه بهش بندازید، فایل یک کلاس هست که از دیتاگرید ارث برده و یه سری تغییرات داده شده لطفا شما ایونت CellTextChange رو بهش اضافه کنید

Mohsen229266
چهارشنبه 01 دی 1389, 21:39 عصر
فایل رو هم ضمیمه کردم
فایل :