یکشنبه, ۹ اردیبهشت, ۱۴۰۳ / 28 April, 2024
مجله ویستا

استفاده از منو در فرمها


استفاده از منو در فرمها
لابد از اهمیت فوق العاده زیاد منوها در ویندوز مطلع هستید. منوها علاوه بر تنوع و زیبایی فرم‌ها، به شلوغ نشدن یك فرم توسط دكمه های زیاد نیز كمك می‌كنند.
برای درست كردن منو برای یك فرم از MenuEditor كه در منوی Tools قرار دارد استفاده می كنیم. همچنین MenuEditor یك دكمه فوری نیز بر روی میله ابزار استاندارد VB به شكل دارد كه با كلیك بر روی آن نیز پنجره MenuEditor باز می شود.
در پنجره مذكور كافیست عنوان منوی اول (مثلاMenu۱) را در كادر Caption بنویسیم و مانند سایر objectهای VB به این منو هم یك نام (مثلاmnuMenu۱) در كادر Name وارد كنیم. حال برای وارد كردن نام و عنوان منوی بعدی كافیست كلید Next را بزنیم. اما معمولا منوی بعدی، آیتمی از منوی قبلی خواهد بود. اگر كلید را بزنیم، منوی جاری به عنوان زیر منوی قبلی محسوب خواهد شد. پس از وارد كردن اولین آیتم كافیست بوسیله دكمه Next آیتم های بعدی اولین منو را نیز وارد كنیم. اگر یكی از آیتم ها خود شامل زیر آیتم هایی بود باز هم می توان از كلید سود برد. و بالاخره برای اینكه به سراغ منوی دوم برویم لازم است از كلید به تعدادی استفاده كنیم كه دیگر زیرمنوی یك منوی دیگر نباشد و به همین ترتیب سایر منوها و آیتمها را نیز نامگذاری و عنوان‌دهی می‌كنیم و ساختار مورد نظرمان را برای منوها ایجاد می‌كنیم.
توجه داشته باشید كه در MenuEditor علاوه بر آنچه تابه‌حال گفته شد:
▪ دكمه Delete برای پاك كردن یك منو (یا آیتم) استفاده می شود.
▪ دكمه Insert برای افزودن یك منو (یا آیتم) میان دو منو (یا آیتم) دیگر استفاده می شود
▪Check Boxهای Visible و Enable به ترتیب اگر انتخاب نشده شوند، منوی مذكور دیده نمی شود و یا اینكه فقط غیرفعال (و به رنگ خاكستری) خواهد شد.
▪ Check Box با عنوان Checked اگر انتخاب شود، باعث خواهد شد تا كنار آن منو (آیتم) یك "چك‌مارك" دیده شود. (معمولا این مشخصه در Run Time و بر حسب نیاز تنظیم می شود)
▪ توسط Shortcut می توانیم یك میانبر (Shortcut) برای یكی از آیتم‌ها درست كنیم..
▪ توسط Index می توانیم آرایه ای از منوها را طراحی نماییم ( همانطوری که آرایه ای ازسایر کنترلها درست می کردیم، یعنی باید نام دو یا چند منو را یک نام واحد بگذاریم و Index متفاوت به هریک بدهیم.)
▪ و توسط NegotiatePosition می‌توان نوع چیدن آیتم‌ها (راست چین، چپ چین، وسط چین) را تعیین نمود.
● چند تذكر:
▪ برای دستیابی به مشخصه های منوها نیز مانند سایر كنترلها از نام آنها و یك نقطه(Dot) و سپس نام مشخصه مورد نظر استفاده می كنیم. مثلا اگر منویی به نام mnuOpen داشته باشیم و بخواهیم آن را غیرفعال و یا مارك‌دار نماییم به ترتیب از دستورات زیر استفاده خواهیم كرد:
mnuOpen.Enable = False
mnuOpen.Checked = True
▪ مشخصه WindowList در بحث MDI Forms خواهد آمد و از مشخصه HelpContentID نیز تنها زمانی كه یك فایل HLP داشته باشیم می‌توانیم استفاده كنیم.
▪ اگر بخواهیم بین دو آیتم از منویی یك خط جداكننده آورده شود (آنچه در ویندوز برای جداكردن بخشهای مختلف یك منوی خاص معمول است) كافی است بین آن دو آیتم، یك آیتم Insert نماییم، نام آن را یك نام دلخواه (مثلا mnuLine) و عنوان (Caption) آن را یك منفی (كاراكتر "-" یا اصطلاحا Dash) بگذاریم.
▪ اگر بخواهیم برای شی خاصی یك PopUpMenu طراحی كنیم (منوهای بازشونده‌ای كه وقتی بر روی شی كلیك راست شود از آن خارج می‌شود) كافیست یك منو (با آیتمهای مورد نظر برای آن) را طراحی كنیم (و حتی در صورت نیاز Visible آن را False كنیم) و در رویداد MouseDown از آن شی خاص، پس از اینكه شرط كردیم كلید زده شده كلید راست ماوس باشد (با استفاده از شرط برابری پارامتر Button از این رویداد با مقدار ثابت VbRightButton)، با استفاده از دستور PopUpMenu، نام منوی مورد نظر را فراخوانی می كنیم یعنی باید چنین داشته باشیم:
Private Sub controlName_MouseDown (Button As Integer,…)
IF Button = VbRightButton Then
PopUpMenu mnuMenu۱ End IF
End Sub
كه بجای controlName نام آن كنترلی كه قرار است كاربر روی آن كلیك راست نماید و بجای mnuMenu۱ نام آن منویی كه قرار است به صورت PopUp آورده شود را ذكر می كنیم.
منبع : پایگاه اطلاع‌رسانی شبکه مدرسه


همچنین مشاهده کنید