لطفا از تمام مطالب دیدن فرمایید.
نوشتن کد برای منوها:
حال که تمام کنترلهای مورد نیاز را در فرم قرار دادیم، باید کد نویسی آن را شروع کنیم. ابتدا کد مربوط به عملکرد منوها را می نویسیم. بعد از اتمام آن کد مربوط به بعضی از دکمه های موجود در نوارابزار Main را کامل می کنیم.
امتحان کنید: نوشتن کد منویFile
به قسمت طراحی فرم رفته و با استفاده از نوارمنو، گزینه New را از منوی File انتخاب کنید. سپس به پنجره Properties بروید و روی آیکون Events کلیک کنید تا رویدادهای این گزینه از منو نمایش داده شوند. از لیست رویدادها، رویداد کلیک را انتخاب کرده و روی آن دوبار کلیک کنید تا متد مربوط به آن ایجاد شود. سپس کد مشخص شده در زیر را به این متد اضافه کنید:
عملکرد دکمه New در نوارابزار Main نیز مشابه عملکرد این گزینه از نوارمنو است. برای نوشتن کد مربوط به این دکمه، به قسمت طراحی فرم رفته و دکمه New را از نوارابزار انتخاب کنید. سپس از لیست رویدادهای این کنترل در پنجره Properties رویداد کلیک را انتخاب کرده و روی آن دوبار کلیک کنید تا متد مربوط به آن ایجاد شود. به علت مشابه بودن عملکرد این متد با متد مربوط به رویداد کلیک گزینه New در منوی File، در این قسمت کافی است کد زیر را به متد اضافه کنید:
همانند قسمت یک، متد مربوط به رویداد کلیک گزینه exitToolStripmenuItem در منوی File را ایجاد کرده، سپس کد زیر را به آن اضافه کنید:
چگونه کار می کند؟
کد مربوط به رویداد کلیک گزینه New کاملا واضح است. در این قسمت باید برنامه را به حالت اولیه برگردانیم. برای این کارنیز کافی است که متن داخل TextBox ها را پاک کرده و فوکوس را به TextBox اول انتقال دهیم تا اگر کاربر متنی را وارد کرد، در این قسمت نوشته شود. برای پاک کردن متن داخل TextBox ها نیز کافی است خاصیت Text آنها را برابر با خاصیت Empty از کلاس String قرار دهیم.
دکمه ی New در نوارابزار نیز باید همین عمل را انجام دهد، اما نیازی نیست که این کد را برای این کنترل نیز تکرار کنیم. یکی از کارهایی که در این قسمت می توانید انجام دهید این است که متدی مجزا برای این مورد بنویسید و این متد را در متدهای newToolStripButton_Click و newToolStripMenuItem_Click فراخوانی کنید. اما روش بهتری هم وجود دارد و این است که کد مربوط به این قسمت را در یکی از این زیربرنامه ها پیاده سازی کرد و در متد دیگرآن زیربرنامه را فراخوانی کرد. در اینجا کد مربوط به این کار را در متد newToolStripMenuItem_Click قرار دادیم و در زیربرنامه ی newToolStripButton_Click آن را فراخوانی کردیم. به علت اینکه پارامترهای هردوی این متدها یکسان است، برای فراخوانی متد اول، می توانیم از پارامترهای متد دوم استفاده کنیم.
حال چه از دکمه New در نوارابزار استفاده کنید و چه گزینه New از منوی فایل را انتخاب کنید، نتیجه مشابه ای دریافت خواهید کرد.
در گزینه ی Exit از منوی File باید کدی را قرار دهید تا برنامه را تمام کند. برای این کار می توانید از متد Exit در کلاس Application استفاده کنید. این متد فرم برنامه را می بندد، تمام منابع اشغال شده به وسیله آن را آزاد کرده و به اجرای برنامه خاتمه می دهد.
حال که بخش کد مربوط به منوی File و دکمه های متناظر آن در نوارابزار به پایان رسید، به منوی Edit می رویم تا کد مربوط به گزینه های آن را بنویسید.
امتحان کنید: نوشتن کد منوEdit
اولین گزینه در منوی Edit، گزینه Undo است. برای نوشتن کد مربوط به این گزینه به قسمت طراحی فرم بروید و روی گزینه Undo در منویEdit دوبار کلیک کنید تا متد مربوط به رویداد کلیک آن ایجاد شود. سپس کد زیر را در این متد وارد کنید:
حال باید کد مربوط به گزینه Cut از این منو را بنویسیم. برای این کار در قسمت طراحی فرم گزینه Cut را از منوی Edit انتخاب کرده و روی آن دوبار کلیک کنید. به این ترتیب متد مربوط به رویداد کلیک آن ایجاد می شود. کد زیر را در این متد وارد کنید:
عملکرد دکمه Cut در نوارابزار نیز مشابه عملکرد این گزینه در نوارمنو است. بنابراین با استفاده از نوارابزار در قسمت طراحی فرم، دکمه ی Cut را انتخاب کرده و روی آن دوبار کلیک کنید تا متد مربوط به رویداد کلیک آن ایجاد شود.سپس در این متد، زیر برنامه cutToolStripMenuItem_Click را فراخوانی کنید.
گزینه بعدی در منوی Edit، گزینه Copy است. کد این گزینه نیز به نسبت مشابه گزینه Cut است. با دوبار کلیک روی این گزینه در قسمت طراحی فرم، متد مربوط به رویداد کلیک آن را ایجاد کرده و کد زیر را در آن وارد کنید:
متد مربوط به رویداد کلیک دکمه ی Copy در نوارابزار را ایجاد کرده ودر آن متد قبلی را فراخوانی کنید. برای این کار کافی است کد زیر را به این متد اضافه کنید:
حال به قسمت طراحی فرم برگردید و از منوی Edit گزینه یPaste را انتخاب کرده، روی آن دوبار کلیک کنید. در متد مربوط به رویداد کلیک آن که به طور اتوماتیک ایجاد می شود، کد زیر را وارد کنید:
برای کد مربوط به رویداد کلیک دکمه ی Paste در نوارابزار نیز می توان از فراخوانی متد قبلی استفاده کرد. بنابراین با دوبار کلیک روی دکمه Paste در نوارابزار، متد مربوط به رویداد کلیک آن را ایجاد کرده و کد زیر را در آن وارد کنید:
نوشتن کد برای منوها:
حال که تمام کنترلهای مورد نیاز را در فرم قرار دادیم، باید کد نویسی آن را شروع کنیم. ابتدا کد مربوط به عملکرد منوها را می نویسیم. بعد از اتمام آن کد مربوط به بعضی از دکمه های موجود در نوارابزار Main را کامل می کنیم.
امتحان کنید: نوشتن کد منویFile
به قسمت طراحی فرم رفته و با استفاده از نوارمنو، گزینه New را از منوی File انتخاب کنید. سپس به پنجره Properties بروید و روی آیکون Events کلیک کنید تا رویدادهای این گزینه از منو نمایش داده شوند. از لیست رویدادها، رویداد کلیک را انتخاب کرده و روی آن دوبار کلیک کنید تا متد مربوط به آن ایجاد شود. سپس کد مشخص شده در زیر را به این متد اضافه کنید:
عملکرد دکمه New در نوارابزار Main نیز مشابه عملکرد این گزینه از نوارمنو است. برای نوشتن کد مربوط به این دکمه، به قسمت طراحی فرم رفته و دکمه New را از نوارابزار انتخاب کنید. سپس از لیست رویدادهای این کنترل در پنجره Properties رویداد کلیک را انتخاب کرده و روی آن دوبار کلیک کنید تا متد مربوط به آن ایجاد شود. به علت مشابه بودن عملکرد این متد با متد مربوط به رویداد کلیک گزینه New در منوی File، در این قسمت کافی است کد زیر را به متد اضافه کنید:
همانند قسمت یک، متد مربوط به رویداد کلیک گزینه exitToolStripmenuItem در منوی File را ایجاد کرده، سپس کد زیر را به آن اضافه کنید:
چگونه کار می کند؟
کد مربوط به رویداد کلیک گزینه New کاملا واضح است. در این قسمت باید برنامه را به حالت اولیه برگردانیم. برای این کارنیز کافی است که متن داخل TextBox ها را پاک کرده و فوکوس را به TextBox اول انتقال دهیم تا اگر کاربر متنی را وارد کرد، در این قسمت نوشته شود. برای پاک کردن متن داخل TextBox ها نیز کافی است خاصیت Text آنها را برابر با خاصیت Empty از کلاس String قرار دهیم.
دکمه ی New در نوارابزار نیز باید همین عمل را انجام دهد، اما نیازی نیست که این کد را برای این کنترل نیز تکرار کنیم. یکی از کارهایی که در این قسمت می توانید انجام دهید این است که متدی مجزا برای این مورد بنویسید و این متد را در متدهای newToolStripButton_Click و newToolStripMenuItem_Click فراخوانی کنید. اما روش بهتری هم وجود دارد و این است که کد مربوط به این قسمت را در یکی از این زیربرنامه ها پیاده سازی کرد و در متد دیگرآن زیربرنامه را فراخوانی کرد. در اینجا کد مربوط به این کار را در متد newToolStripMenuItem_Click قرار دادیم و در زیربرنامه ی newToolStripButton_Click آن را فراخوانی کردیم. به علت اینکه پارامترهای هردوی این متدها یکسان است، برای فراخوانی متد اول، می توانیم از پارامترهای متد دوم استفاده کنیم.
حال چه از دکمه New در نوارابزار استفاده کنید و چه گزینه New از منوی فایل را انتخاب کنید، نتیجه مشابه ای دریافت خواهید کرد.
در گزینه ی Exit از منوی File باید کدی را قرار دهید تا برنامه را تمام کند. برای این کار می توانید از متد Exit در کلاس Application استفاده کنید. این متد فرم برنامه را می بندد، تمام منابع اشغال شده به وسیله آن را آزاد کرده و به اجرای برنامه خاتمه می دهد.
حال که بخش کد مربوط به منوی File و دکمه های متناظر آن در نوارابزار به پایان رسید، به منوی Edit می رویم تا کد مربوط به گزینه های آن را بنویسید.
امتحان کنید: نوشتن کد منوEdit
اولین گزینه در منوی Edit، گزینه Undo است. برای نوشتن کد مربوط به این گزینه به قسمت طراحی فرم بروید و روی گزینه Undo در منویEdit دوبار کلیک کنید تا متد مربوط به رویداد کلیک آن ایجاد شود. سپس کد زیر را در این متد وارد کنید:
حال باید کد مربوط به گزینه Cut از این منو را بنویسیم. برای این کار در قسمت طراحی فرم گزینه Cut را از منوی Edit انتخاب کرده و روی آن دوبار کلیک کنید. به این ترتیب متد مربوط به رویداد کلیک آن ایجاد می شود. کد زیر را در این متد وارد کنید:
عملکرد دکمه Cut در نوارابزار نیز مشابه عملکرد این گزینه در نوارمنو است. بنابراین با استفاده از نوارابزار در قسمت طراحی فرم، دکمه ی Cut را انتخاب کرده و روی آن دوبار کلیک کنید تا متد مربوط به رویداد کلیک آن ایجاد شود.سپس در این متد، زیر برنامه cutToolStripMenuItem_Click را فراخوانی کنید.
گزینه بعدی در منوی Edit، گزینه Copy است. کد این گزینه نیز به نسبت مشابه گزینه Cut است. با دوبار کلیک روی این گزینه در قسمت طراحی فرم، متد مربوط به رویداد کلیک آن را ایجاد کرده و کد زیر را در آن وارد کنید:
متد مربوط به رویداد کلیک دکمه ی Copy در نوارابزار را ایجاد کرده ودر آن متد قبلی را فراخوانی کنید. برای این کار کافی است کد زیر را به این متد اضافه کنید:
حال به قسمت طراحی فرم برگردید و از منوی Edit گزینه یPaste را انتخاب کرده، روی آن دوبار کلیک کنید. در متد مربوط به رویداد کلیک آن که به طور اتوماتیک ایجاد می شود، کد زیر را وارد کنید:
برای کد مربوط به رویداد کلیک دکمه ی Paste در نوارابزار نیز می توان از فراخوانی متد قبلی استفاده کرد. بنابراین با دوبار کلیک روی دکمه Paste در نوارابزار، متد مربوط به رویداد کلیک آن را ایجاد کرده و کد زیر را در آن وارد کنید:
آخرین گزینه در منوی Edit گزینه ی Select All است. برای نوشتن کد مربوط به این گزینه با دوبار کلیک روی آن، متد مربوط به رویداد کلیک آن را ایجاد کرده و کد زیر را در آن وارد کنید:
چگونه کار می کند؟
نوشتن کد منوی Edit را با گزینه Undo شروع کردیم. به علت اینکه در فرم خود دو TextBox داریم، یا باید به نحوی بفهمیم که کدام TextBox در فرم انتخاب شده است، یا از یک روش کلی استفاده کنیم که برای هر دو TextBox کاربرد داشته باشد. در این متد از روشی کلی استفاده کرده ایم که می تواند برای هر دو TextBox به کار رود.
برای اینکه به کنترلی که هم اکنون در فرم انتخاب شده است دسترسی داشته باشیم، می توانیم از خاصیت ActiveControl در فرم استفاده کنیم (همانطور که در قسمتهای قبل نیز ذکر شد برای دسترسی به خاصیتهای فرم از کلمه کلیدی this استفاده می کنیم). این خاصیت، شیئ ای را از نوع Control برمی گرداند و باید قبل از استفاده از آن در برنامه آن را به نوع کنترلی که مورد نظرمان است تبدیل کنیم. با توجه به اینکه در این فرم فقط دو کنترل وجود دارند که می توانند به عنوان کنترل فعال باشند و هر دوی آنها نیز از نوع TextBox هستند، پس کنترلی که به وسیله خاصیت ActiveControl مشخص می شود حتما می تواند به یک شیئ از کلاس TextBox تبدیل شود. بنابراین شیئ جدیدی از نوع TextBox تعریف می کنیم و کنترلی را که خاصیت ActiveControl برمی گرداند، بعد از تبدیل نوع، در آن قرار می دهیم:
حال که به TextBox که در فرم انتخاب شده است دسترسی داریم، برای لغو آخرین عمل آن کافی است متد Undo را در آن فراخوانی کنیم. این متد که عضوی از کلاس TextBox است، می تواند آخرین تغییری را که کاربر در آن TextBox ایجاد کرده است را لغو کند.
نکته: در این برنامه استفاده از خاصیت ActiveControl بسیار راحت بود، زیرا فقط دو کنترل TextBox در فرم قرار داشت. پس می توانستیم بدون نگرانی از به وجود آمدن خطا در برنامه، مقدار برگشتی از این خاصیت را به شیئ ای از کلاس TextBox تبدیل کنیم. اما در شرایطی که کنترل های گوناگونی در برنامه وجود دارند، ممکن است کاربر یک کنترل Button را انتخاب کرده و سپس روی گزینه ی Undo کلیک کند. در این صورت مقدار برگشتی توسط خاصیت ActiveControl از نوع TextBox نخواهد بود و تبدیل آن به TextBox نیز باعث ایجاد خطا در برنامه خواهد شد. در این شرایط برای بدست آوردن کنترل فعال در یک فرم باید از روشهای دیگری استفاده کنیم که در فصلهای بعدی با آنها بیشتر آشنا می شوید.
گزینه بعدی در منوی Edit، گزینه Cut است. در این گزینه نیز، برای کات کردن متن، ابتدا باید به کنترل فعال در فرم دسترسی داشته باشیم. به همین دلیل از روش قبلی برای دسترسی به این کنترل استفاده می کنیم. بعد از مشخص کردن کنترل فعال در فرم و تبدیل آن به شیئ از کلاس TextBox، کافی است متد Cut مربوط به آن را فراخوانی کنیم. این متد یکی از عضوهای کلاس TextBox است که متن داخل کادر را از آن پاک کرده و در داخل کلیپ برد قرار می دهد:
عملکرد دکمه ی Cut در نوارابزار نیز مشابه این گزینه در نوارمنو است. بنابراین کافی است در متد مربوط به رویداد کلیک از این کنترل، متدی را که برای گزینه Cut در نوارمنو نوشتیم فراخوانی کنیم:
کد مربوط به گزینه Copy نیز مشابه گزینه Cut است. کافی است کنترل فعال در فرم را مشخص کرده و بعد ازتبدیل آن به شیئ ای از نوع TextBox، متد Copy آن را فراخوانی کنیم. متد Copy که عضو کلاس TextBox است، یک کپی از متن داخل کادر را در کلیپ برد قرار می دهد.
برای رویداد کلیک دکمه ی Copy در نوارابزار هم کافی است که متد قبلی را فراخوانی کنیم:
برای کد مربوط به رویداد کلیک گزینه Paste از منوی Edit و همچنین دکمه ی Paste در نوارابزار هم می توانیم از روشی مشابه موارد قبلی استفاده کنیم.
برای گزینه Select All در این منو می توانیم متد SelectAll که عضوی از کلاس TextBox است را فراخوانی کنیم. این متد باعث می شود که تمام متن موجود در TextBox انتخاب شود:
برچسبها:
تاريخ : پنجشنبه 20 شهریور 1393 | 08:04 | نویسنده : کـــــوچـــــولـــــو |
ارسال نظر(0)
لطفا از دیگر مطالب نیز دیدن فرمایید













