PDA

View Full Version : طراحی کامپوننت



s.sohrabzade
جمعه 09 دی 1390, 15:17 عصر
با سلام من دارم یه سری از کامپوننت ها رو برای خودم سفارشی میکنم که یه سری کارهارو برام انجام بده مثلا کنترل تکست باکس رو میخوام هر زمان که کلید + فشرده شد به کنترل (تکست باکس) بعدی بره، کدش رو اینجوری نوشتم و کار هم میکنه.
من اومدم زمان ساختن کامپوننت متد KeyDown رو بصورت زیر override کردم اما زمانیکه داخل برنامه اصلی از این کامپوننت استفاده مینکم اگر بخوام هنگام تایپ چک کردن کاری رو انجام بده دیگه متد KeyDown براش کار نمیکنه.
ممنون میشم راهنمایی کنید.


protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyCode == Keys.Add)
{
SendKeys.Send("{Tab}");
e.Handled = true;
}
if (e.KeyCode == Keys.Subtract)
{
SendKeys.Send("+{Tab}");
e.Handled = true;
}
}

s.sohrabzade
جمعه 09 دی 1390, 16:46 عصر
مشکل حل شد. از تو سایت مایکروسافت پیداش کردم، اینو میذارم شاید بدرد یکی دیگه هم بخوره
When overriding OnKeyDown in a derived class, be sure to call the base class's OnKeyDown method so that registered delegates receive the event.
کلا زمانیکه بخوایم چیزی رو override کنیم باید کلاس پایشو هم فراخوانی کنیم وگرنه اون کلاس به اون چیزی که ما override کردیم محدود میشه
اینو به خط اول کد باید اضافه کرد
base.OnKeyDown(e);