2016-10-20 5 views
2

와 나는이 기사를 다음하고, http://www.vesic.org/english/blog-eng/net/full-screen-maximize/전체 화면 창 형태이지만 제목 표시 줄

이 나의 창을 전체 화면으로 갈 형성 할뿐만 아니라 제목 표시 줄을 숨 깁니다 있습니다.

작업 표시 줄을 숨기고 싶지만 내 제목 표시 줄을 갖고 싶습니다.

"targetForm.FormBorderStyle = FormBorderStyle.None;" 내 제목 표시 줄을 숨기지 만이 작업 표시 줄을 제거하면 어쨌든 작업 표시 줄을 숨기고 Windows 응용 프로그램에서 제목 표시 줄을 유지합니까? 단지 작업 표시 줄이 숨겨져보다 감사

using System; 
using System.Drawing; 
using System.Windows.Forms; 
using System.Runtime.InteropServices; 

namespace myClasses 
{ 

    public class WinApi 
    { 
     [DllImport("user32.dll", EntryPoint = "GetSystemMetrics")] 
     public static extern int GetSystemMetrics(int which); 

     [DllImport("user32.dll")] 
     public static extern void 
      SetWindowPos(IntPtr hwnd, IntPtr hwndInsertAfter, 
         int X, int Y, int width, int height, uint flags); 

     private const int SM_CXSCREEN = 0; 
     private const int SM_CYSCREEN = 1; 
     private static IntPtr HWND_TOP = IntPtr.Zero; 
     private const int SWP_SHOWWINDOW = 64; // 0x0040 

     public static int ScreenX 
     { 
      get { return GetSystemMetrics(SM_CXSCREEN); } 
     } 

     public static int ScreenY 
     { 
      get { return GetSystemMetrics(SM_CYSCREEN); } 
     } 

     public static void SetWinFullScreen(IntPtr hwnd) 
     { 
      SetWindowPos(hwnd, HWND_TOP, 0, 0, ScreenX, ScreenY, SWP_SHOWWINDOW); 
     } 
    } 

    /// <summary> 
    /// Class used to preserve/restore state of the form 
    /// </summary> 
    public class FormState 
    { 
     private FormWindowState winState = FormWindowState.Normal; 
     private FormBorderStyle brdStyle = FormBorderStyle.Sizable; 
     private bool topMost; 
     private Rectangle bounds; 

     private bool IsMaximized = false; 

     public void Maximize(Form targetForm) 
     { 
      if (!IsMaximized) 
      { 
       IsMaximized = true; 
       Save(targetForm); 
       targetForm.WindowState = FormWindowState.Maximized; 

       targetForm.FormBorderStyle = FormBorderStyle.None; 
       //targetForm.TopMost = true; 
       WinApi.SetWinFullScreen(targetForm.Handle); 
      } 
     } 

     public void Save(Form targetForm) 
     { 
      winState = targetForm.WindowState; 
      brdStyle = targetForm.FormBorderStyle; 
      topMost = targetForm.TopMost; 
      bounds = targetForm.Bounds; 
     } 

     public void Restore(Form targetForm) 
     { 
      targetForm.WindowState = winState; 
      targetForm.FormBorderStyle = brdStyle; 
      targetForm.TopMost = topMost; 
      targetForm.Bounds = bounds; 
      IsMaximized = false; 
     } 
    } 
} 
+0

"전체 화면 창 형식이지만 작업 표시 줄이 있음"을 의미합니까? (당신은 Q. 제목으로) – Yogi

+0

작업 표시 줄이 없지만 도구 모음이있는 경우 –

답변

3

당신은, FormBorderStyle.FixedToolWindow;로 설정할 수 있습니다.

+0

이것은 제목 표시 줄을 보여 주지만 놀랍게도 최대화 및 최소화 단추는 제목 표시 줄에 표시되지 않지만 닫기 표시가 나타납니다. 이 버튼을 다시 얻는 방법 –

+0

targetForm.MinimizeBox = true; 및 targetForm.MaximizeBox = true; 작동하지 않습니다. –

+0

예, 고정 창을 사용했기 때문입니다. 사용자가 크기를 변경할 수 있도록 허용하는 경우. 버튼을 다시 가져올거야. 불행히도, 원하는 동작에 대한 FormBorderStyle이 없습니다. 너는 너 자신을 써야 할지도 모른다. –

관련 문제