من یک کلاسی (Class) ساختم که به بهترین و ساده ترین شکل ممکن تغییراتی که کاربر در محتویات فرم ایجاد می کنه
را بصورت موقت در حافظه RAM و بصورت دائمی در درون یک فایل متنی ذخیره می کند.
و هر زمانی که اراده کنید دوباره فرم را به وضعیتی که در هنگام ذخیره شدن فرم قرار داشت، باز می گرداند.
نام این کلاس ClassFormBank است و تنها کدهایی که برای استفاده از آن لازم دارید اینها هستند :
در قدم اول بایستی یک نمونه از کلاس مذکور را بصورت یک متغیر درون کد فرم تعریف کنید :
کد:
Private FormBank As New ClassFormBank
این متن بالا اولین سطر برنامه در کد فرم تان خواهد بود تا نمونه کلاس FormBank را ایجاد کند.
اگر شما چندین فرم مختلف را در برنامه تان دارید، برای هر کدام از فرمها همین کد را در ابتدای آن اضافه خواهید کرد.
این کلاس برای شما سه فرمان (متد) را معرفی می کند که می توانید از آنها برای کنترل محتویات فرم استفاده کنید.
فرمان SaveForm :
این فرمان محتویات فرمی که به آن معرفی می کنید را ذخیره می کند و دو پارامتر ورودی دارد که دومی اختیاری است.
پارامتر اول فرمی است که باید ذخیره شود، مثلا Form1 یا Me که در واقع Me همواره نام فرمی خواهد بود که اکنون
در کد آن قرار دارید و فعال است.
پارامتر دوم که اختیاری است مسیر فایلی خواهد بود که یک نسخه از محتویات فرم در آن ذخیره می شود مثلا :
C:\FileName.txt
این یک فایل متنی است که این کلاس با ساختار آن بخوبی آشنا است و بعدا می تواند دوباره آنرا فراخوانی کند.
اگر پارامتر دوم را اعلام نکنید، محتویات فرم فقط در حافظه موقتی RAM ذخیره می شوند و با پایان یافتن اجرای
برنامه این اطلاعات پاک خواهند شد.
مثال هایی از کاربرد این فرمان اینچنین است :
کد:
FormBank.SaveForm Form1
FormBank.SaveForm Me
FormBank.SaveForm Me, "FileName.sav"
فرمان LoadForm :
این فرمان برعکس SaveForm عمل می کند و محتویات فرمی که قبلا ذخیره شده را بر روی فرم فعلی نمایش می دهد و
همانند SaveForm دو پارامتر ورودی دارد که دومی اختیاری است.
پارامتر اول فرمی است که باید اطلاعات در آن نمایش داده شود، مثلا Form1 یا Me که در واقع Me همواره نام فرمی خواهد بود
که اکنون در کد آن قرار دارید و فعال است.
پارامتر دوم که اختیاری است مسیر فایلی خواهد بود که محتویات فرم از داخل آن فراخوانی می شود مثلا :
C:\FileName.txt
اگر پارامتر دوم را اعلام نکنید، محتویات فرم از حافظه موقتی RAM فراخوانی می شوند.
مثال هایی از کاربرد این فرمان اینچنین است :
کد:
FormBank.LoadForm Form1
FormBank.LoadForm Me
FormBank.LoadForm Me, "FileName.sav"
فرمان ClearForm :
همانطور که از نام این فرمان پیداست، محتویات اطلاعاتی فرم را پاک می کند، مثلا داخل TextBox ها را خالی می کند
و یا تیک CheckBox ها بر می دارد.
مثال هایی از کاربرد این فرمان اینچنین است :
کد:
FormBank.ClearForm Form1
FormBank.ClearForm Me
حالا برویم سراغ تشریح عملکرد این کلاس :
در داخل این کلاس هیچ پیشفرضی از محتویات فرم شما وجود ندارد و برایش فرقی نمی کند که شما چند کنترل و به چه شکلی
را در فرمتان بکار برده اید.
تمام اطلاعاتی که این کلاس ذخیره و بازیابی می کند اینها هستند :
محتویات TextBox ها
تیک خوردگی CheckBox ها
انتخاب شدن و انتخاب نشدن OptionButton ها
آیتمی انتخاب شده در داخل ComboBox و ListBox ها
توجه کنید که فرمان ClearForm آیتم داخل ComboBox و ListBox را حذف و یا غیر فعالی می کند و نه لیست آیتم ها را.
دلیل این امر این است که طبق استدلال حقیر، قرار است اطلاعاتی ذخیره و یا پاک شوند که کاربر آنها را تغییر داده و
نه برنامه نویس.
چون این برنامه یک کلاس مستقل از فرم است، می تواند با بیش از یک نمونه و فرم بکار برود مثلا این کد پایین محتویات دو
فرم Form1 و Form2 که از نظر شکل فرم یکسان هستند را به سادگی تعویض می کند، مثلا اگر هم در فرم Form1 و
هم در فرم Form2 یک TextBox با نام Text1 داشته باشیم، این کد مقدار آندو را با هم عوض میکند.
کد:
Dim A As New ClassFormBank
Dim B As New ClassFormBank
A.SaveForm Form1
B.SaveForm Form2
A.LoadForm Form2
B.LoadForm Form1
کاربرد این کلاس حقیقتا ساده است ولی کد داخل خود آن پیچیده و در سطح حرفه ای است.
کد کامل کلاس به همراه یک فرم نمونه و فایل اجرایی EXE ضمیمه این پست می باشد.