PDA

View Full Version : مشکل در ساخت کنترلی شبیه منو



Saeed Hamed
شنبه 14 شهریور 1388, 17:08 عصر
سلام.
من می خوام یه فرم شامل کنترل های بر روی آن درست کنم با این ویژگی که این این فرم قرار است به صورت یک منو باز شود یعنی اگر پنجرۀ برنامه کوچیک بود این فرم یا بهتره بگم UserControl به زیر پنجره نرود و دقیقا مانند یک منو باز بشه. شما فرض کنید قرار است روی یک منو تعدادی کنترل گذاشته شود. درضمن منظورم از منو همون ContextMenu است.
امیدوارم متوجه منظورم شده باشید.
منتظر کمک های شما عزیزان هستم. :چشمک:

ALI TT
شنبه 14 شهریور 1388, 20:31 عصر
خوب بساز . برای اینکه نره زیر اون خاصیت Topmost رو True کن .. بیشتر توضیح بده

Saeed Hamed
شنبه 14 شهریور 1388, 22:01 عصر
بیشتر توضیح بده
ببین دوست من شما زمانی که برای یک کنترل ContextMenu تعریف می کنی و اون رو نمایش میدی اینجا اون ContextMenu کاری نداره ابعاد فرمی که کنترل روش قرار داره چقدر است یعنی اگر فرم کوچکتر از اون منو باشه ادامۀ منو در خارج از فرم باز میشه. حالا این حالت رودر نظر بگیرید من میخوام چیزی شبیه به همون ContextMenu داشته باشم با این تفاوت که بتونم روی اون کنترل هایی مثل Lable یا Button یا هرچیز دیگه داشته باشم.
امیدوارم تونسته باشم خوب توضیح بدم.
از توجهتون متشکرم.

Hossis
شنبه 14 شهریور 1388, 23:19 عصر
ایده خوبی هست ولی فکر نمی کنم به مشکلی بر بخورد ، یوزر کنترل هم لازم نیست مگر این که بخواهی در جاهای زیادی ازش استفاده کنید وگرنه با یک فرم هم میشه این کار رو کرد.
من یک وقتی با یک فرم ، همچین چیزی که شما گفتی رو برای انتخاب رنگ ساختم و از اون استفاده می کنم . اگر هم اصرار بر یوزر کنترل داشته باشی،‌ می تونی همین روند رو روی یوزر کنترل پیاده کنی

اول این که رنگ زمینه یک فرم رو سفید می کنید
خاصیت Bordestyle رو برابر 0 می کنید تا نوار عنوان دیده نشه
کنترل های مورد نیاز رو روی فرم قرار می دهید
در فرم دیگر ، هنگام راست کلیک، این فرم ساخته شده لود می کنید، کدهای لازم را درون آن قرار می دهید (مثلا با فشردن کلید موس روی یک لیبل، رنگ ان را بدست آورد)
در فرمی که به عنوان منوی راست درست کردید، در رویداد Mousedmwn فرم و همه کنترل ها این کد را قرار می دهید که فرم بسته شود.
فکر کنم واضح بود

Saeed Hamed
یک شنبه 15 شهریور 1388, 00:21 صبح
با یک فرم هم میشه این کار رو کرد.


مرسی از راهنماییت. فقط یه مشکل هست اونم این که وقتی این فرم به عنوان یک ContextMenu باز میشه فرم اصلی حالت Active خودشو از دست میده و این زیاد جالب نیست.
فکر کنم اگه راهی باشه که به یک منو کنترل اضافه کرد بهتر باشه آخه منو هیچکدوم از این مشکلات رو نداره در عوض توی اونم دو تا مشکل وجود داره. یکی اینکه بهش نمی تونم کنترل اضافه کنم یکی دیگه اینکه رویداد Click منو رو نمی تونم کنترل کنم. به محض این که کلیک میشه منو فکر میکنه آیتمی کلیک شده و منوی باز رو میبنده.

ALI TT
یک شنبه 15 شهریور 1388, 01:50 صبح
برای اضافه کردن رویداد در هنگام ران بودن برنامه می تونی از دستور زیر استفاده کنی :

فرض می کنیم این تابع مربوط به کاری است که دکمه قرار انجام بده :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub
و این هم برای افزودن رویداد به آن :

AddHandler Button1.Click, AddressOf Button1_Click