2011-08-16 1 views
2

winform 응용 프로그램에서 '제목 표시 줄'에 이미지 및 제목 텍스트를 추가하고 모든 컨트롤 buttions (최소, 최대 & 닫기)를 제거하려면 어떻게합니까? 이미지 및 제목 텍스트를 표시 할 수 있었지만 '닫기'버튼을 포함한 모든 버튼을 제거 할 수 없었습니다. 이 문제를 해결할 수있는 방법이 있습니까?Winform, 이미지 및 텍스트가 있지만 컨트롤 버튼이없는 사용자 정의 제목 표시 줄?

답변

0

FormDesigner에서 FormBorderStyle을 None으로 설정하면 도움이 될 수 있습니다.

0

불행히도 PInvoke를 사용하여 Windows API 함수를 호출해야합니다.

// Changes an attribute of the specified window.   
    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] 
    public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); 
    // Retrieves information about the specified window.   
    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] 
    public static extern int GetWindowLong(IntPtr hWnd, int nIndex); 
    public const int GWL_STYLE = (-16); 
    public const int WS_SYSMENU = 0x00080000; 
    public const int WS_MAXIMIZEBOX = 0x00010000; 


    public static void SetDialogStyle(Form window) 
    { 
     // We disable the control box functionality for the window 
     // i.e. remove the minimize, maximize and close button as 
     // well as the system menu. 

     int style = GetWindowLong(window.Handle, GWL_STYLE); 
     style &= ~(WS_SYSMENU | WS_MAXIMIZEBOX); 
     SetWindowLong(window.Handle, GWL_STYLE, style); 
    } 

당신은 함수의 인수로이을 통과 OnLoad 이벤트에서이 함수를 호출 할 수 있습니다.

+0


ControlBox=false을 설정하는 것이 좋습니다? – Dhana

+0

답변을 – Arseny

+0

WindowInteropHelper ?? 찾을 수 없습니까? – Dhana

1

폼의 ControlBox 속성을 False로 설정하면 모든 단추 (최소, 최대, 닫기 단추)를 쉽게 제거 할 수 있으며 제목 및 이미지를 설정할 수도 있습니다. 여기서 FormBorderStyle을 완전히 사용하면 제목 표시 줄을 제거하면 문제를 해결하는 데 도움이되지 않습니다.

그래서 난 당신이 양식 내가 from1.cs이 menthod 부르죠

관련 문제