2012-01-23 3 views
3

컨트롤 상자, 최소화 상자 및 최대화 상자가 비활성화되어있는 동안 내 사용자 지정 대화 상자의 왼쪽 위 모서리에 아이콘을 표시하는 방법이 있습니까? 아이콘을 클릭 할 때 (about, close, move 등) 어떤 기능도 필요하지 않습니다. 나는 그저 좋게 보길 원해.컨트롤 상자가없는 Windows Forms 대화 상자 아이콘

+1

제어하지 못 찾았어요 상자 -> 아이콘 없음 – Mikant

+0

얼마를 확신합니까? 어떤 옵션이 있습니까? – Vajda

+0

@Mikant, 답변을 게시 할 수 있습니다. – Vajda

답변

3

없음 컨트롤 박스 ... ControlBox 사용하지 않는 경우

이 양식 windowstyle의 WS_SYSMENU 플래그가 (어떻게 든 멀리 방식) 인이 삭제되지 및 Windows는 아이콘을 표시하기 때문에이 불가능하게된다. 사실은 내가 오른쪽 위 모서리 아이콘 WS_SYSMENU O/w를 계속 존재 (방법 &) 이유에 대한 최종 설명을 발견 ...하지만 당신의 요구에 맞는 하나 개 더 좋은 솔루션을)

private const int GWL_STYLE = -16; 
    private const int WS_CLIPSIBLINGS = 1 << 26; 

    [DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "SetWindowLong")] 
    public static extern IntPtr SetWindowLongPtr32(HandleRef hWnd, int nIndex, HandleRef dwNewLong); 
    [DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "GetWindowLong")] 
    public static extern IntPtr GetWindowLong32(HandleRef hWnd, int nIndex); 

    protected override void OnLoad(EventArgs e) { 
     int style = (int)((long)GetWindowLong32(new HandleRef(this, this.Handle), GWL_STYLE)); 
     SetWindowLongPtr32(new HandleRef(this, this.Handle), GWL_STYLE, new HandleRef(null, (IntPtr)(style & ~WS_CLIPSIBLINGS))); 

     base.OnLoad(e); 
    } 
+0

제공하신이 코드를 사용할 수 없었습니다. 모든 사용자가 기대하는 규칙적인 상황이기 때문에 닫기 버튼만으로 컨트롤 박스를 사용할 것입니다. – Vajda

+0

작동하지 않는 것 같습니다. 시스템 메뉴에서 SC_CLOSE 항목을 사용하지 않도록 설정하거나 삭제할 수 있습니다. 비활성화 된 닫기 상자는 계속 표시되지만 클릭 할 수는 없습니다. http://www.codeguru.com/csharp/csharp/cs_misc/userinterface/article.php/c9327/Manipulating-the-System-Menu-Using-C.htm을 참조하십시오. – dlchambers

2

ControlBox 속성을 false로 설정할 수 있습니다. Control Box, 최대화, 최소화 버튼이 대화 상자에 표시되지 않습니다.

Form1.ControlBox = false; 

또는 다른 당신이 기꺼이하지 전체 컨트롤 박스를 해제하는 경우, 다음과 같이 설정할 수 있습니다. ShowIcon 속성을 true로 설정할 수 있습니다.

Form1.MaximizeBox = false; 
Form1.MinimizeBox = false; 
Form1.ShowIcon=true; 
+0

예, 알고 있습니다. 그러나이 경우 왼쪽 상단의 아이콘이 더 이상 보이지 않습니다. – Vajda

+0

@Vajdacheck updated ans –

+0

그것은 아이콘이 컨트롤 박스가 활성화되어있을 때만 보입니다. – Vajda

-1

이미지 컨트롤을 왼쪽 상단 구석에 추가하고 아이콘을 지정할 수 있습니다. 그게 도움이 되겠습니까? => 아니요 아이콘

+0

아니요, 이미지는 클라이언트 영역에만 추가 할 수 있으며 필요에 따라 추가 할 수 없습니다. – Vajda

관련 문제