vijay bisht Ответов: 4

как определить положение полосы контекстного меню при щелчке мыши


как определить положение полосы контекстного меню при щелчке мыши

Kenneth Haugland

Есть ли эта проблема в windows forms или WPF?

4 Ответов

Рейтинг:
35

Trak4Net

Это должно сработать...

Me.ContextMenuStrip1.Bounds.Location


Private Sub Form1_MouseDoubleClick(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDoubleClick
        Me.ContextMenuStrip1.Show(MousePosition)
    End Sub

    Private Sub TestToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles TestToolStripMenuItem.Click
        MessageBox.Show(Me.ContextMenuStrip1.Bounds.Location.X & "x" & Me.ContextMenuStrip1.Bounds.Location.Y & _
                        vbCrLf & MousePosition.X & "x" & MousePosition.Y)


Рейтинг:
2

paja007

Private Sub DataGridView1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDown
    If e.Button = Windows.Forms.MouseButtons.Right Then
        ContextMenuStrip1.Show(CType(sender, Control), e.Location)
    End If
End Sub


Рейтинг:
1

OriginalGriff

Обычно он отображается относительно конкретного элемента управления - это просто случай смещения его (если вы хотите) на величину из верхнего левого угла соответствующего элемента управления путем его ручного построения и использования метода Show: MSDN имеет пример: http://msdn.microsoft.com/en-us/library/s00cc2f3.aspx[^]


Рейтинг:
1

efsnet

В Практическое руководство

Private Sub YourDataGrid_CellMouseDown(sender As Object, e As DataGridViewCellMouseEventArgs) Handles YourDataGrid.CellMouseDown
        If e.Button = Windows.Forms.MouseButtons.Right AndAlso e.RowIndex >= 0 Then
            YourDataGrid.Rows(e.RowIndex).Selected = True
            'if possible insert code here to read selected option from context menu and get relevant content from respective cell

            YourContextMenu.Show(MousePosition.X, MousePosition.Y)
        End If
    End Sub


CHill60

На этот вопрос был дан ответ более 4 лет назад