چگونه يك ابزار سفارشي(dll) در c# بسازيم
در اينجا با استفاده از يك مثال ساده به ساخت يك فايل dll مي پردازيم
مي خواهيم dll اي بنويسيم كه درون آن يك كلاس وجود دارد كه از TextBox ارث بري مي كند حال مي خواهيم يك خاصيت ديگر هم به آن اضافه كنيم كه اگر آن را فعال(True) كرديم كليد Enter كار كليد Tab را انجام دهد يعني زماني كه روي TextBox هستيم با زدن كليد Enter روي شي بعدي (دكمه – تكست باكس و…) فوكوس شود.
مراحل ساخت dll
ابتدا بايد يك پروژه جديد را در ويژوال استديو ايجاد كنيم اما اين بار به جاي WindowsFormsApplication گزينه ClassLibrary را انتخاب مي كنيم، در پروژه ايجاد شده يك كلاس داريم. نام كلاس را mytext مي گذاريم:
public class mytext
{
}
حالا اين كلاس بايد از TextBox ارث بري كند كه جلوي اسم كلاس مي نويسيم:
public class mytext : System.Windows.Forms.TextBox
{
}
نكته: براي اينكه بتوان كد بالا را نوشت بايد مراحل زير را انجام داد:
-
در پنجره solutionExplorer روي Reference راست كليك كرده و روي گزينه Add Reference كليك كنيد و از پنجره باز شده وارد تب .NET شويد و windows.forms را به ليست Reference ها اضافه كنيد
-
عبارت using system.windows.forms را به ليست using ها اضافه كنيد
داخل كلاس mytext يك متغيير و يك خاصيت(property) از نوع بيت تعريف مي كنيم، چون مقدار آن قرار است True يا False باشد و داخل خاصيت مقدار متغيير را قرار مي دهيم:
private Boolean ETT;
public Boolean EnterToTab
{
set
{ ETT = value; }
get
{ return ETT; }
}
حال رويداد KeyDown را override مي كنيم و داخل آن مي نويسيم كه اگر كليد Enter فشرده شد و خاصيت EnterToTab هم True بود به جاي Enter كليد Tab عمل نمايد (كار كليد Tab اين است كه شي بعدي را فعال مي نمايد):
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyData == Keys.Enter && EnterToTab)
{
SendKeys.Send(“{TAB}”);
}
}
پروژه را يك بار Build كنيد تا فايل dll ساخته شود اين فايل داخل پوشه Debug پروژه ذخيره مي شود.
از داخل solutionExplorer روي solution راست كليك كنيد و AddNewProject را انتخاب كنيد و يك پروژه ديگر را به برنامه اضافه كنيد البته اين بار windowsFormAplicasion را انتخاب كنيد حال مي بينيد كه در پنجره ToolBox ، mytext نيز اضافه شده است اگر نبود مي توانيد خودتان آنرا به ToolBox اضافه كنيد(داخل ToolBox راست كليك كرده و choose items… را بزنيد و فايل dll راانتخاب كنيد).
Mytext را به فرم خود اضافه كنيد مي بينيد كه داخل properyهاي آن خاصيتي به نام EnterToTab اضافه شده است آن را True كنيد.
يك ابزار ديگر مثلا يك دكمه به فرم اضافه كنيد و خاصيت EnterToTab را هم True كنيد
حال برنامه را اجرا كنيد(براي اجراي برنامه روي نام پروژه دوم راست كليك كنيد و گزينه set as startup project را بزنيد و برنامه را اجرا كنيد)، مي بينيد كه با زدن كليد Enter از mytext به شي بعدي كه اينجا همان دكمه است منتقل مي شود.