3

ボーダレス フォームを最大化すると、フォームがタスク バーを含む画面全体を覆いますが、これは望ましくありません。ネット上で私の問題の解決策を見つけるのは非常に難しいと感じています.私が思いついたのは以下のコードだけです.画面。

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

私の問題を解決する唯一の方法は、画面サイズの高さからタスクバーの高さを引いてフォームの高さを求めることだと思い始めていますが、もっと簡単な答えがあるといいのですが。

4

4 に答える 4

5

次のように、フォームの Load イベントを使用して最大サイズを設定します。

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

最大化すると、サイズがモニターの作業領域 (モニターのサイズからタスクバーを引いたもの) に制限されるようになりました。

于 2015-01-30T17:47:51.513 に答える
1

これを行う方がよいでしょう:

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

一部のユーザーは複数のモニターを使用するためです。したがって、Hans Passant の方法を使用すると、ユーザーがアプリケーションをセカンダリ モニターに最大化すると、アプリケーションはプライマリーのモニターの作業領域サイズを取得し、見栄えが悪くなります!!!

于 2016-05-14T10:01:01.570 に答える