PDA

View Full Version : contextmenustrip را برای یک اکتیو ایکس چطوری طراحی کنم؟



sevenboys
یک شنبه 26 آذر 1391, 16:02 عصر
من یک activex دارم که به برنامه اضافه کرده ام حال میخواهم به این activex یک contextmenustrip اضافه کنم،آن را میسازم و در پنجره properties مربوط به اکتیوایکس هم قسمت contextmenustrip را تنظیم میکنم اما وقتی که برنامه را اجاره میکنم با راست کلیک کردن هیچ اتفاقی نمیافتد، چطوری این مشکل را حل کنم؟
یا اینکه چطوری میتوانم contextmenustrip ساخته شده را در نقطه ای از روی اکتیو ایکس توسط موس روی آن کلیک میکنم باز کنم؟؟؟؟

sevenboys
شنبه 02 دی 1391, 12:22 عصر
یکی کمک کنه

sevenboys
یک شنبه 03 دی 1391, 09:49 صبح
plz help me

sevenboys
یک شنبه 03 دی 1391, 13:26 عصر
به جای این همه تاپیک زدن با یک موضوع ثابت ، یه زحمت بکشید اکتیوایکس رو قرار بدید تا دیگران تست کنند بعد جوابتون رو

بدند.
اکتیوایکس teechartهست

plus
یک شنبه 03 دی 1391, 18:34 عصر
ظاهرا اکتیوایکس شما رویداد راست کلیک فرم رو میگیره و با بالا (به خود فرم) انتقال نمیده و به خاطر همین منو نمایش داده نمیشه.
شما اول بررسی کن ببین رویداد MouseDown وقتی راست کلیک میکنی Raise میشه؟ اگه میشه میتونی به صورت دستی منو رو نمایش بدی.اگه نمیشه یک راه دیگه هست..

sevenboys
چهارشنبه 06 دی 1391, 12:18 عصر
تو رویداد MouseDown منو را نمایش میده اما در جای که راست کلیک کریدم نمایش نمیده و در جای که قبلا contextmenustrip باز شده بوده نمایش میده و اگر هم تا حالا باز نشده باشه در قسمت سمت چپ بالای صفحه نمایش میده،اما من میخواهم دقیقا در همان جای که راست کلیک کردم نمایش بده......اگه راه دوم را بگید ممنون میشم

ظاهرا اکتیوایکس شما رویداد راست کلیک فرم رو میگیره و با بالا (به خود فرم) انتقال نمیده و به خاطر همین منو نمایش داده نمیشه.
شما اول بررسی کن ببین رویداد MouseDown وقتی راست کلیک میکنی Raise میشه؟ اگه میشه میتونی به صورت دستی منو رو نمایش بدی.اگه نمیشه یک راه دیگه هست..

plus
چهارشنبه 06 دی 1391, 12:53 عصر
پس شما که اول گفتید با راست کلیک اتفاقی نمی افته؟.contextmenustrip رو به فرم نسبت دادین یا ActiveX؟آخرش وقتی روی ActiveX راست کلیک میکنید رویداد MouseDownش Raise میشه یا نه؟

فرید نجفلو
چهارشنبه 06 دی 1391, 14:23 عصر
سلام
تو رویداد Click یا MouseDown و بعد بررسی اینکه کلید راست فشرده شده (بسته به پارامتر هایی که اون کنترل در e ارائه داده) کد زیر رو بنویسید

contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);

sevenboys
شنبه 09 دی 1391, 12:36 عصر
به فرم که نسیت بدهم که مشکلی نداره روی فرم باز میشه اما وقتی به اکتیو ایکس نسبت میدهم بعد روی اکتیو ایکس راست کلیک میکنم هیچ اتفافی نمیفته،وقتی در رویداد mousedown مربوط به اکتیو ایکس کدی مینویسم ان کد با راست کلیک کردن اجرا میشه

پس شما که اول گفتید با راست کلیک اتفاقی نمی افته؟.contextmenustrip رو به فرم نسبت دادین یا ActiveX؟آخرش وقتی روی ActiveX راست کلیک میکنید رویداد MouseDownش Raise میشه یا نه؟

sevenboys
یک شنبه 10 دی 1391, 10:23 صبح
این دستورا را نوشتم اما دقیقا همان جای که کلیک میکنی باز نمیشه

سلام
تو رویداد Click یا MouseDown و بعد بررسی اینکه کلید راست فشرده شده (بسته به پارامتر هایی که اون کنترل در e ارائه داده) کد زیر رو بنویسید

contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);

plus
یک شنبه 10 دی 1391, 13:00 عصر
به فرم که نسیت بدهم که مشکلی نداره روی فرم باز میشه اما وقتی به اکتیو ایکس نسبت میدهم بعد روی اکتیو ایکس راست کلیک میکنم هیچ اتفافی نمیفته،وقتی در رویداد mousedown مربوط به اکتیو ایکس کدی مینویسم ان کد با راست کلیک کردن اجرا میشه

اگه رویداد راس کلیک اجرا میشه این رو در راست کلیک بنویسین (قبلش مطمئن بشین ContextMenuStrip رو به ActiveX نسبت نداده باشین چون قراره دستی بازش کنید)

contextMenuStrip1.Show(activeControl1, e.X, e.Y);

activeXControl1 اسم کنترل شماست.اگه باز مکانش مشکل داشت، این باید حتما کار کنه:

contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y);

sevenboys
یک شنبه 10 دی 1391, 15:44 عصر
مشکل باز شدن در همان نقطه که کلیک میکنم حل شد اما مشکل دیگه اینه که با هر دو کلیک موس یعنی هم چپ و هم راست انجام میشه و من میخواهم فقط با راست انجام بشه،کد را در رویداد mouse down نوشتم

سلام
تو رویداد Click یا MouseDown و بعد بررسی اینکه کلید راست فشرده شده (بسته به پارامتر هایی که اون کنترل در e ارائه داده) کد زیر رو بنویسید

contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);

plus
یک شنبه 10 دی 1391, 18:44 عصر
این شرط رو اضافه کنید:

if ((e.Button & MouseButtons.Right) == MouseButtons.Right)
{
contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);

}