2011-05-02 3 views
0

디자이너에 ContextMenuStrip이 할당 된 DataGridViewColumn이 있습니다. 메뉴 항목 항목의 click 이벤트 처리기에서 컨텍스트 메뉴를 생성 한 셀이 포함 된 행의 행 인덱스를 가져와야합니다. DataGridView.CurrentCell.RowIndex은 컨텍스트 메뉴가 표시되기 전에 셀을 왼쪽 버튼으로 선택하는 한 올바르게 작동합니다. 그러나 먼저 선택하지 않고 셀을 마우스 오른쪽 단추로 클릭하면 RowIndex은 항상 0입니다. 컨텍스트 메뉴 스트립 항목의 부모를 찾고 셀/열의 체인을 처리하려고 시도했지만 ContextMenuStrip.Parent은 항상 null입니다. 메뉴 위치를 사용하지 않고도이 작업을 수행 할 수 있습니까? 내가 위치를 사용해야한다면, 바보 같은 방법으로 그것을 할 수 있습니까?ContextMenuStrip을 사용하는 DataGridViewColumn - 연결된 셀/행을 항상 * 얻을 수 있습니까?

답변

1

오른쪽 마우스 클릭만으로 컨텍스트 메뉴를 호출 할 수있는 유일한 방법은 아닙니다. Shift + F10 또는 컨텍스트 메뉴 키도이를 호출합니다. 키보드에서 컨텍스트 메뉴를 호출해도 X, Y 좌표가 제공되지 않으므로 메뉴의 컨텍스트가 무엇인지 알아야하는 유일한 방법은 "현재 선택된 항목"의 개념입니다.

내가하는 일은 MouseDown 이벤트를 무시하고 마우스 오른쪽 버튼을 누르면 마우스 아래의 셀을 선택합니다.

+0

오, 좋은 생각! 나는 그것을 시험해보고 당신에게 알려줄 것입니다. –

+0

셀을 선택하는 대신 오른쪽 마우스 클릭에 DataGridView의 CurrentCell 속성을 설정해야했습니다. 그러나 마우스 조작과 설정은 완벽하게 작동합니다. 감사! –

관련 문제