آسانترین راه Override کردن یه متد برای چندین گریدویو
سلام
من چند تا فرم دارم مثلا 20 تا
تو همشونم گرید ویو هست
حالا میخوام یه متد مثلا ProcessDialogKey رو برا همه گرید ویوهام Override کنم
یه راهش اینه که یه کلاس بسازم و از گرید ویو ارث بری کنه و تو فرم ها این کلاس رو به جای گرید ویو بزارم
این راه برا زمانی که پروژه بزرگه خیلی سخت میشه
راه اسونتری نداره که آیا؟
نقل قول: آسانترین راه Override کردن یه متد برای چندین گریدویو
میخواهید انجام بدید مثلا من عمل Enter زدن در سلول های دیتاگرید ویو با زدن اینترنت بره ستون بعدی رو میخواستم امدم از دیتاگرید ویو به صورتی سفارشی ساختم کارم راحت شد و سرعت زیاد شد و همین طور یکی در میون سلول دیتاگرید ویو رو رنگش رو عوض میکنم تا دادش معلوم بشه بخاطر همین ساخت کامپوننت رو من توصیه میکنم و یک بار فقط کد نویسی انجام میدید.
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
base.ProcessTabKey(Keys.Tab);
return true;
}
return base.ProcessDialogKey(keyData);
}
protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
base.ProcessTabKey(Keys.Tab);
return true;
}
return base.ProcessDataGridViewKey(e);
}
نقل قول: آسانترین راه Override کردن یه متد برای چندین گریدویو
سلام. راه اصولیش همونیه که خودتون گفتین که زیاد هم وقت گیر نیست. کافیه جاهایی که دیتاگریدها تعریف و new میشن کلاس DataGridView با کلاس جدیدی که ساختین replace کنین. اتفاقا در پروژه های بزرگ طراحی کلاس ها باید منطبق بر اصول باشه تا بعدا در نگهداری و توسعه به مشکل نخوره.
یه راه دیگه اینه که از extention method استفاده کنید.
نقل قول: آسانترین راه Override کردن یه متد برای چندین گریدویو
با extention method میشه یه متد رو override کرد؟
چطور؟
نقل قول: آسانترین راه Override کردن یه متد برای چندین گریدویو
نقل قول:
نوشته شده توسط
hamid_hr
با extention method میشه یه متد رو override کرد؟
چطور؟
نه override نمیشه کرد باید یه متد با نام جدید بسازید. برای ovrride کردن راهش همون وراثته.