[C#] 닫기 (x) 버튼 만 숨기는 방법?

모달 대화 상자가 있으며 닫기 (X) 버튼을 숨겨야하지만 ControlBox = false최소화 및 최대화 버튼을 유지해야하기 때문에을 사용할 수 없습니다
.

닫기 버튼 만 숨겨야합니다. 할 수있는 방법이 있습니까?

고마워요!

업데이트 : 나는 그것을 비활성화 할 수있는 권한을 가졌습니다. 더 간단합니다 🙂 모두 감사합니다!



답변

숨길 수는 없지만 양식의 CreateParams 속성을 재정 의하여 사용하지 않도록 설정할 수 있습니다.

private const int CP_NOCLOSE_BUTTON = 0x200;
protected override CreateParams CreateParams
{
    get
    {
       CreateParams myCp = base.CreateParams;
       myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON ;
       return myCp;
    }
}

출처 : http://www.codeproject.com/KB/cs/DisableClose.aspx


답변

설정으로 폼에 닫기 버튼을 숨길 수있다 this.ControlBox=false;


답변

전체 시스템 메뉴를 제거하여 숨길 수 있습니다.

private const int WS_SYSMENU = 0x80000;
protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.Style &= ~WS_SYSMENU;
        return cp;
    }
}

물론 이렇게하면 최소화 및 최대화 버튼이 제거됩니다.

시스템 메뉴를 유지하면서 닫기 항목을 제거하면 닫기 단추는 남아 있지만 비활성화됩니다.

마지막 대안은 비 클라이언트 영역을 직접 페인트하는 것입니다. 제대로 이해하기가 어렵습니다.


답변

당신은 사용하여 가까운 상자를 숨길 수 있습니다

this.ControlBox = false;

this.Text = " "이처럼 공백을 추가하는 것을 잊지 마십시오.

여기에 이미지 설명을 입력하십시오


답변

“표시되지 않음”과 같이 숨기려면 경계선없는 양식을 작성하고 캡션 구성 요소를 직접 그려야합니다. VisualStyles 라이브러리에는 사용 가능한 Windows 요소가 있습니다. 캡션 표시 줄을 잡고 양식 크기를 조정하거나 양식을 이동하는 기능을 다시 추가해야합니다. 코너에있는 시스템 메뉴는 말할 것도 없습니다.

대부분의 경우, 특히 기능을 최소화하는 모달 양식을 원할 때 “닫기”버튼을 사용할 수없는 것은 정당화하기 어렵습니다. 모달 폼을 최소화하는 것은 실제로 의미가 없습니다.


답변

폼의 속성에서 ‘Control Box’= False로 설정되었지만 최소화 및 최대화도 숨겨집니다.


답변

속성 섹션에서 또는 프로그래밍 방식으로 FormBorderStyle을 변경하여 닫기 버튼을 숨길 수 있습니다.

public Form1()
{
InitializeComponent();
this.FormBorderStyle = FormBorderStyle.None;
}

그런 다음 메뉴 스트립 항목을 만들어 응용 프로그램을 종료하십시오.

건배