문제

사용자가 ComboBox를 마우스 오른쪽 버튼으로 클릭하면 표시되는 ContextMenu가 있습니다.사용자가 컨텍스트 메뉴에서 항목을 선택하면 다음을 사용하여 양식이 나타납니다. ShowDialog() 방법.

If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
    LoadComboBoxes()
End If

해당 양식이 닫히면 상위 양식의 ComboBox에 있는 모든 데이터를 새로 고칩니다.그러나 이런 일이 발생하면 ContextMenu를 연 ComboBox는 선택된 인덱스 -1을 갖도록 재설정되지만 다른 ComboBox의 선택된 다른 인덱스는 동일하게 유지됩니다.

상황에 맞는 메뉴를 연 ComboBox가 재설정되는 것을 어떻게 방지합니까?

도움이 되었습니까?

해결책

이를 처리하는 한 가지 방법은 상황에 맞는 메뉴의 Popup 이벤트를 사용하여 메뉴를 실행하는 콤보 상자의 선택된 인덱스를 가져오는 것입니다.대화 상자 양식이 닫히면 선택한 인덱스가 재설정됩니다.

다른 팁

나는 그것을 알아.

나는 ContextMenu.SourceControl() 속성을 참조하여 ContextMenu를 호출하는 컨트롤을 조작할 수 있었습니다.방법의 시작 부분에서 나는 선택된 값 ComboBox의 데이터를 ComboBox에 다시 로드합니다.그런 다음 선택된 값 메서드 시작 시 얻은 값으로.

나에게 올바른 방향을 알려준 DaveK에게 감사드립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top