PDA

View Full Version : مشکل بعد از تغییر عرض(width) در ContextMenuStrip



m.h.movahedi
دوشنبه 27 اردیبهشت 1395, 21:19 عصر
سلام
من بنا به دلایلی مجبور شدم یک combobox اختصاصی ایجاد کنم و برای همین هم از ContextMenuStrip برای dropdown استفاده کردم. همه چیز خوب پیشرفت و تنها مشکلی که باهاش روبرو هستم اینه که بعد از تغییر عرض(width) این کنترل، آیتم های اون به همون اندازه تغییر طول نمی دهند. به طور مثال با افزایش عرض اگر موس وارد قسمت سمت راست هر آیتم در ContextMenuStrip بشه اون آیتم انتخاب نمشه و باید موس به سمت چپ حرکت کنه تا این آیتم انتخاب بشه. در شکل زیر میشه ناحیه ی انتخاب رو دید . همونطور که مشخصه قسمتی در سمت راست وجود داره که باعث انتخاب نمیشه. کسی میتونه برای حل این مشکل راهی بیان کنه.
با تشکر

140456

m.h.movahedi
سه شنبه 28 اردیبهشت 1395, 09:34 صبح
سلام. خودم راه حل رو پیدا کردم:)
برای افراد دیگری که ممکنه به این مشکل بربخورند راه حل را می نویسم
بعد از تعریف item

ToolStripMenuItem item = new ToolStripMenuItem(items[i], null, DropDownItemClicked);
باید ابتدا

item.AutoSize = false;
و سپس عرض رو تغییر داد

item.Size = new System.Drawing.Size(this.Width, 22);
البته اگر کد رو خارج از کلاس اختصاصی نوشتید باید به جای this از نام نمونه (toolstripContextMenu) استفاده کنید.

مشکل من فراموش کردن لغو تنظیم خودکار سایز بود (autoSize=false;)

hasan1234
سه شنبه 28 اردیبهشت 1395, 18:38 عصر
سلام
من بنا به دلایلی مجبور شدم یک combobox اختصاصی ایجاد کنم و برای همین هم از ContextMenuStrip برای dropdown استفاده کردم. همه چیز خوب پیشرفت و تنها مشکلی که باهاش روبرو هستم اینه که بعد از تغییر عرض(width) این کنترل، آیتم های اون به همون اندازه تغییر طول نمی دهند. به طور مثال با افزایش عرض اگر موس وارد قسمت سمت راست هر آیتم در ContextMenuStrip بشه اون آیتم انتخاب نمشه و باید موس به سمت چپ حرکت کنه تا این آیتم انتخاب بشه. در شکل زیر میشه ناحیه ی انتخاب رو دید . همونطور که مشخصه قسمتی در سمت راست وجود داره که باعث انتخاب نمیشه. کسی میتونه برای حل این مشکل راهی بیان کنه.
با تشکر

140456

سلام
این آموزش شاید بتونه کمکتون کنه
http://goo.gl/VYq8IQ