외부를 클릭하면 패널을 닫아야 함(초점 상실) (Need To Close A Panel When Clicked Outside (Lost Focus))


문제 설명

외부를 클릭하면 패널을 닫아야 함(초점 상실) (Need To Close A Panel When Clicked Outside (Lost Focus))

극복할 수 없는 문제가 있습니다.

내 응용 프로그램에는 시작 시 패널에 양식을 로드하는 사용자 정의 클래스가 있습니다. 그런 다음 기본 양식의 버튼을 클릭하면 패널이 사용자에게 표시되는 것으로 표시됩니다.

내 문제는 사용자가 패널 외부를 클릭할 때 패널을 숨길 수 있기를 원한다는 것입니다. (기본 양식으로 돌아가기).

지금까지 Form_Deactivate, Form_Leave, Form_LostFocus, 를 시도했습니다. Panel_LeavePanel_LostFocus 이벤트가 발생하지만 패널을 숨기기 위해 이벤트를 일관되게 트리거하는 이벤트는 없는 것 같습니다.

Public Class cls_UserObjects

    Private frm As frmUsers
    Public pnl As Panel

    Public Sub ShowUserPanel()
        Try
            frm = New frmUsers
            frm.TopLevel = False
            pnl.Controls.Add(frm)
            frm.Show()
            frm.Focus()
....
End Class

그런 다음 기본 양식에서 아래 코드를 호출하여 양식을 패널에 빌드합니다.

class_Users.pnl = pnlUsers
class_Users.ShowUserPanel()

그리고 pnlUsers.Visible = True를 사용자에게 보여주기 위해

닫을 수 없는 것 같습니다. 패널이 LostFocus를 제대로 지원하지 않는다는 것을 이해하지만 이 문제를 해결할 수는 없습니다. 내 양식/패널을 여는 방법과 관련이 있을 수 있지만 외부 호출에서 내 양식 내의 컨트롤을 더 잘 제어할 수 있도록 클래스를 사용하여 양식을 여는 것이 좋습니다.

도움이 필요합니다. 감사합니다. 감사합니다


참조 솔루션

방법 1:

MouseLeave event works, the panel hides immediately once it leaves the panel.

Private Sub Panel1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1.MouseLeave
    Panel1.Visible = False
End Sub

(by Riplessabre)

참조 문서

  1. Need To Close A Panel When Clicked Outside (Lost Focus) (CC BY‑SA 3.0/4.0)

#panel #focus #vb.net






관련 질문

R을 사용하여 패널 데이터의 마지막 이벤트 이후 실행 계산 (Using R to count a run since last event in panel data)

버튼을 클릭한 후 한 패널을 표시하고 동일한 프레임에서 두 번째 버튼을 클릭하면 다른 패널을 표시합니다. (show one panel after button is clicked and other panel when second button is clicked in the same frame)

외부를 클릭하면 패널을 닫아야 함(초점 상실) (Need To Close A Panel When Clicked Outside (Lost Focus))

asp.net gridview - updatepanel을 사용하여 행당 여러 줄에 바인딩된 데이터 분산 (asp.net gridview - spread bound data across multi lines per row with updatepanel)

문자를 포함하는 고유 식별자와 함께 xtreg 사용 (Using xtreg with unique identifier that includes letters)

matlab SVM은 NaN을 반환합니다. (matlab SVM returns NaN)

특정 형식의 JAVA GUI 제작에 대한 질문 (Question about making a JAVA GUI of a certain format)

슬라이딩 패널 구분선을 사용하여 HTML 페이지를 다른 섹션으로 분할하시겠습니까? 어떻게 이루어지나요? (Splitting HTML page into different sections using sliding panel dividers? How is it done?)

Swift Mac Os 응용 프로그램 - NSSavePanel이 '백그라운드 전용' 응용 프로그램에서 올바르게 작동하지 않습니다. (Swift Mac Os Application - NSSavePanel does not behave correctly with a 'background only' application)

Python 저주 update_panels() 및 Panel.move() 문제 (Python Curses update_panels() and Panel.move() issues)

stargazer를 사용하여 plm FE 회귀에서 전체 R2를 얻는 방법은 무엇입니까? (How to get between and overall R2 from plm FE regression with stargazer?)

Java, 패널용 그래픽 개체 생성 및 편집? (Java, create and edit a Graphics Object for Panel?)







코멘트