을 발사하지 된 DataGridView mouseDown 이벤트 양식 I가 비주얼 스튜디오에 VS.NET Visual Basic에서 작성된 응용 프로그램 2005.NET 윈도우
이있는에서 검색 한 데이터를 표시하는 데에 DataGridView
제어하는 Windows 양식, 데이터 베이스.
사용자가 레코드를 마우스 오른쪽 단추로 클릭하고 컨텍스트 메뉴를보고 데이터베이스에서 레코드를 삭제하기 위해 삭제를 클릭 할 수있게하려고합니다.
불행하게도 나는 심지어 마우스를 내려하거나 여기
(중단 점 설정으로, 디버그 모드에서) 화재 이벤트를 클릭 할 수있는 것은 내 코드입니다 :
Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
MessageBox.Show("You right-clicked on the grid at", "Unpaid", MessageBoxButtons.OK)
End Sub
Private Sub DataGridView1_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDoubleClick
MessageBox.Show("You right-clicked on the grid at", "Unpaid", MessageBoxButtons.OK)
End Sub
Private Sub DataGridView1_CellMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
MessageBox.Show("Clicked right")
else
MessageBox.Show("Clicked left")
End If
Dim r As Rectangle
if (e.RowIndex >= 0 && e.ColumnIndex >= 0 && e.Button == MouseButtons.Right)
DataGridView1.Rows(e.RowIndex).Selected = True
r = DataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, True)
contextMnu.Show(DataGridView1, r.Left + e.X, r.Top + e.Y)
End If
End Sub
Private Sub DeleteChequeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeleteChequeToolStripMenuItem.Click
MessageBox.Show("You right-clicked on the grid", "Unpaid", MessageBoxButtons.OK)
End Sub
당신이 볼 수 있듯이, I 어떤 이벤트를 발생 시키려고 시도하고, 어떤 이벤트도 발생 시키며, 마우스 오른쪽 버튼을 클릭하거나 왼쪽 클릭을해도 코드가 실행되지 않습니다.
BTW, 런타임에 그리드의 데이터가, 그리고 내가 아는 한, 그것은 사용할 수 있습니다
그래서 내가 잘못 여기서 뭐하는거야?DataGridView
컨트롤에 추가해야 할 기능이 있습니까?
내 디버그 문제는 양식 부모 (MDI Form MDI Child)와 관련이 있습니까? –
아, 첫 번째 플레이트에서 언급 했어야합니다. "Handles"이 이벤트 호출이없는 곳에 동일한 문제가있는 것으로 나타났습니다. 보유한 모든 이벤트를 제거하고 Child form GUI 이벤트 추가 기능에서 이벤트 cellmousedown을 추가하십시오. 그런 다음 Intellisense가 가져 오는 선택 사항을 보려면 이벤트 후 "Handles"를 입력하십시오. DataGridView1.CellMouseDown을 선택했습니다. 그러면 이벤트가 정상적으로 발생하는 것 같습니다. –
Patratacus
또한 기본 양식을 부모로 사용하도록 하위 양식을 설정하고 있습니까? 부모 형태로 이런 식으로 : FormChild.MdiParent = Me – Patratacus