PDA

View Full Version : چگونه با زدن Right click بر روی کنترل کلیک کنم.



mostafaaa
شنبه 22 دی 1386, 11:06 صبح
با سلام خدمت اساتید محترم
من میخام با Right click روی یک کنترل ابتدا یکبار برو روی آن کنترل کلیک بشه بعد منوی popup مربوط به Right click نمایش داده بشه .
مثلا Right click بر روی msflexgrid
با تشکر

مبین رنجبر
شنبه 22 دی 1386, 11:21 صبح
میتونی از رویداد MouseDown استفاده کنی که اگر Button = 2 بود رویداد کلیک اجرا بشه

mostafaaa
شنبه 22 دی 1386, 12:00 عصر
میتونی از رویداد MouseDown استفاده کنی که اگر Button = 2 بود رویداد کلیک اجرا بشه
شاید من منظورم رو بد توضیح دادم.
من msflexgrid دارم با یکسری دیتا توش .حالا میخام با راست کلیک بر روی هر سطر یه منوی راست کلیک باز بشه تا اون اطلاعات رو پاک یا ادیت کنم .
حالا من نمیخام روی هر سطر اول کلیک کنم بعد راست کلیک ، میخام وقتی راست کلیک میکنم اول اون سطر انتخاب بشه (انگار که روش کلیک کردم )بعد منوی راست کلیک نمایش داده بشه .
امیدوارم منظورم را کامل رسونده باشه.
در رویداد mouse down هم کد زیر رو قرار دادم فعلا.

Private Sub mfg_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Button = 1 :::>>> For LeftClick
'Button = 2 :::>> For RightClick

If Button = 2 Then
PopupMenu mnupop
End If
End Sub

ƒxmahdi
شنبه 22 دی 1386, 12:15 عصر
همانطور که Lsass.CRC32 گفتند در رویداد Mouse Down کد زیر را بنویسید
File نام منو
و رویداد Label1 فراخانده می شود


If Button = 2 Then
PopupMenu File
Label1_Click
End If

این شی رویداد مربوط به ماوس را نداره

HjSoft
شنبه 22 دی 1386, 13:22 عصر
درسته با روش دوستان کاملا جواب میده

mostafaaa
شنبه 22 دی 1386, 17:58 عصر
همانطور که Lsass.CRC32 گفتند در رویداد Mouse Down کد زیر را بنویسید
File نام منو
و رویداد Label1 فراخانده می شود

این شی رویداد مربوط به ماوس را نداره
این کد زمانی جواب میده برای همون label استفاده بشه برای msflexgrid عملی نیست.چون من هر جا روی grid راست کلیک میکنم سطر اول که به صورت پیش فرض بعد از لود شدن فرم سلکت شده انتخاب میشه .
من دنبال یه کدی مشابه دستور sendkeys هستم. البطه اگه وجود داشته باشه.

ali_habibi1384
شنبه 22 دی 1386, 20:59 عصر
کد کامل و واضح توضیح داده شده فکر نکنم مشکلی داشته باشه.

mostafaaa
شنبه 22 دی 1386, 21:52 عصر
آقا من واقعا گیج شدم
من اگه بخام از روش دوستان استفاده کنم کدم به این صورت میشه


if Button = 2 Then
PopupMenu mnupop
msflexgrid1_click
End If

حالا رویداد کلیک msflexgrid چه زمانی اجرا میشه؟
زمانی که من بر روی یه سطر کلیک کرده باشم.(یعنی از قبل یه سطری توی msflexgrid انتخاب شده باشه)
یعنی در واقع من با کد بالا رویداد کلیک مربوط به کنترل msflexgrid رو فراخوانی میکنم ، و بر روی سطر زیر پوینتر موسم کلیک نمیکنم.
اگه اشتباه میکنم دوستان اصلاح کنند.
من همچنان منتظر راهنمایی های دوستان هستم .
با تشکر

vbhamed
یک شنبه 23 دی 1386, 03:22 صبح
سلام
از این کد استفاده کن
فقط ارتفاع سطرهات مثل هم باشه



Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

With MSFlexGrid1
.Row = y / (.RowHeight(0) + 10) + .TopRow - 1
End With

'...
'...
'...

End Sub

mostafaaa
یک شنبه 23 دی 1386, 09:21 صبح
سلام
از این کد استفاده کن
فقط ارتفاع سطرهات مثل هم باشه



Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

With MSFlexGrid1
.Row = y / (.RowHeight(0) + 10) + .TopRow - 1
End With

'...
'...
'...

End Sub

خیلی ممنون
مشکل به کمک شما برطرف شد.