آموزش ساخت کنترل dll در سی شارپ c#

آموزش ساخت کنترل dll در سی شارپ c#

آموزش سی شارپ c#

برای ساخت یک dll کنترل در سی شارپ c# یک sulotion جدید برای این پروژه ایجاد میکنیم.

سپس یک پوشه برای ویندوز فرم و سپس یکی برای پوشه کنترل.

حالا یک کلاس در سی شارپ به پروژه کنترل اضافه میکنیم.

فرض کنید میخواهیم یک تکست باکس دلخواه ایجاد کنیم تا علاوه بر مشخصات تکست باکس معمولی سی شارپ C# یکسری خواص و متدهای جدید را دارا باشد.

برای اینکار در قدم اول نوع کلاس تعیین شده را از نوع textBox انتخاب میکنیم:


namespace UserControl
{
   public partial class TextClass:System.Windows.Forms.TextBox 
   {
   }
}

اکنون از پروژه ایجاد شده بر روی ViewClassDiagram (بالا سمت راست )پروژه کلیک کنید یا روی کلاس ایجاد شده کلیک راست کنید و گزینه view Calss Diagram  را کلیک کنید:

ساخت کنترل دلخواه در سی شارپ c#

با انتخاب view Class Diagram پنجره زیر نمایش داده خواهد شد:

ایجاد ساخت dll کنترل در سی شارپ c#

اکنون کلاسهای اضافی را پاک کنید و فقط textClass را برای ساخت کنترل dll در سی شارپ نگه دارید.

اکنون برای اضافه کردن یک پراپرتی جدید به تکست باکس وارد کلاس میشویم.

قرار است این پراپرتی جدید در تکست باکس هنگامی که فوکوس بر روی تکست باکس قرار گرفت رنگ زمینه تکست باکس را به رنگ دلخواه تغییر دهد.

بنابراین یک پراپرتی برای کنترل تکست باکس دلخواهمان تعریف میکنیم:


public partial class TextClass:System.Windows.Forms.TextBox 
{
   private System.Drawing.Color FBC=Color.Blue,LFBC ;
   public System.Drawing.Color FocusBackColor
   {
      get
      {
         return FBC;
      }
      set
      {
         FBC = value;
      }
   }
}


رنگ پیشفرض را در اینجا آبی در نظر گرفتیم.

متد get برای دادن مقدار و set برای گرفتن مقدار است که توسط value انتقال میدهد.

رنگ دلخواه را نیز FBC تعریف کردیم.

تا همینجا میتوانید با ایجاد dll از آن در پروژه استفاده کنید. برای این کار CTRL+SHIFT+B را بزنید تا dll دلخواه در سی شارپ ساخته شود.

اکنون به پروژه ویندوز فرم سلوشن پروژه بروید و کنترل ایجاد شده در سی شارپ را به آن اضافه کنید.

همانطور که مشاهده میکنید یک پراپرتی جدید به TextBox معمولی c# اضافه شده است:

اضافه کردن خاصیت جدید به کنترل در c#

حالا باید هنگامی که فوکوس بر روی کنترل ما قرار گرفت باید رنگ مورد نظر را به BackColor تکست باکس منتقل کند.

یعنی باید برای رویداد Enter در تکست باکس رنگ انتخابی را انتقال دهیم.

برای این کار کد زیر را مینویسیم:


private System.Drawing.Color LFBC ;
protected override void OnEnter(EventArgs e)
{
   LFBC = this.BackColor;
   this.BackColor = this.FocusBackColor;
   base.OnEnter(e);
}
protected override void OnValidated(EventArgs e)
{
   this.BackColor = LFBC;
   base.OnValidated(e);
}

در اینجا از متغییر سراسری LFBC برای ذخیره آخرین رنگ درونی کنترل استفاده میکنیم تا در رویدادهای OnEnter ( هنگام ورود به کنترل ) و OnValidated ( هنگامی که کنترل را ترک کرد )

سایر خاصیتها و اضافه کردن ساخت کنترل dll در سی شارپ مشابه مثالهای گفته شده است.

در ادامه آموزش ساخت کنترل dll در سی شارپ c# یک پروژه ضمیمه شده است که علاوه بر موارد گفته شده فوق تعدادی خاصیتهای دیگه مانند فونت و تاریخ نیز تعریف شده است که در جلسات بعدی روش ساخت و هندل کردن آنها نیز بصورت کامل آموزش داده خواهد شد.

دانلود پروژه ساخت کنترل در سی شارپ