2015-01-30 15 views
2

테두리없는 양식을 최대화 할 때 작업 표시 줄을 포함하여 전체 화면이 양식에 표시됩니다. 나는 그물에 나의 문제에 해결책을 찾아내는 것은 아주 곤란한 찾아 내고있다, 나가 위로 uped 온 모두는 짧은 클립을위한 taskbar를 표시하는 코드이다, 그러나 그 후에 사라지고 모양은 아직도 전체를 채택한다 화면. 나는 내 문제를 해결하는 유일한 방법을 생각하기 시작하고VB.net 테두리없는 양식 작업 표시 줄 최대화

Private Sub TableLayoutPanel1_DoubleClick(sender As Object, e As MouseEventArgs) Handles TableLayoutPanel1.DoubleClick 
    If e.Location.Y < 30 Then 
     Me.WindowState = FormWindowState.Maximized 
     Me.ControlBox = True 
    End If 
End Sub 

화면 크기의 높이를 뺀 형태로 높이를 얻을 수있는 작업 표시 줄의 높이를 찾는 것입니다,하지만 난 간단한 대답이있을 수 있습니다 바라고 있어요.

+0

컨트롤 박스가 내가하려는 일에 아무런 관련이 없다고 생각하기 시작했습니다. 내가 코드에 넣을 때 작업 표시 줄이 초 동안 나타날 것이기 때문에 그냥 생각했다. – Jarron

+0

아, 나는 또한 테두리를 가지고 폼을 바꾸기 위해 코드를 시도했는데 경계선없는 상태를 다시 극대화했습니다. 그러나 폼이 녹아 내고 반응을 멈추기 시작했습니다. – Jarron

답변

4

이 같은 최대 크기를 설정하는 폼의 Load 이벤트를 사용

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Me.MaximumSize = Screen.FromRectangle(Me.Bounds).WorkingArea.Size 
End Sub 

극대화가 지금에 크기 제한을 모니터의 작업 영역 - 모니터 크기에서 작업 표시 줄을 뺀 값입니다.

+0

굉장했기 때문에 내 문제에 대한 간단한 해결책이 있었기 때문에 기쁩니다. 고마워, 시간 동안 그물을 찾고 있었고이 대답을 찾을 수 없었다. – Jarron

2

화면의 "작업 영역"사용

Me.Bounds = Screen.GetWorkingArea(Me) 
+0

또한 멋진 답변, 매력을 작동합니다. 고마워. – Jarron

1

당신은 더 나은이 작업을 수행해야합니다

Me.MaximumSize = Screen.FromControl(Me).WorkingArea.Size 

일부 사용자가 여러 대의 모니터를 사용하기 때문에. 따라서 Hans Passant의 방법을 사용하면 사용자가 보조 모니터로 응용 프로그램을 최대화 할 때 응용 프로그램이 주 모니터의 작업 영역 크기를 얻게되어 끔찍하게 보입니다.