2017-09-26 79 views
0

私は答えは非常に単純だと思っていますが、ここに問題があります。私のオプションメニューには2つの部分、通常の設定と詳細設定があります。ボタン、かなり基本的。これにより、フォームのサイズを大きくすることができますが、私が持っている唯一の問題は、異なる解像度でフォームを大きくしても、同じ要素によって大きくならないということです。フォームを標準の1080pモニターで実行し、ラップトップ解像度1366 x 768でプログラムを実行すると、フォームは1080p解像度の画面で描画するよりもはるかに小さくなります。VB.NET - 画面解像度でフォームサイズを変更:

相続人は、私は、フォームのサイズを大きくするために使用しているコード:それはやや違いがあれば

Private Sub Advance_btn_Click(sender As Object, e As EventArgs) Handles Advance_btn.Click 
    If advanced = 0 Then 
     Me.Size = New Drawing.Size(262, 198) ' will increase form size 
     Advance_btn.Text = "<" ' text for button changes to know i have pressed the button - (to '<') 
     advanced = 1 
    ElseIf advanced = 1 Then 
     Me.Size = New Size(262, 85) ' will decrease form size 
     Advance_btn.Text = ">" ' text for button changes to know i have pressed the button - (to '>') 
     advanced = 0 
    End If 
End Sub 

フォームは、国境なしにも感謝です。

+1

Screen.PrimaryScreen.Bounds。[幅/高さ]を使用して、画面のサイズを取得するのは非常に単純です。これらの範囲に対してフォームサイズをどれだけスケールするかは、あなた次第です。 – soohoonigan

答えて

-1
 Me.Height = Screen.PrimaryScreen.Bounds.Height 
     Me.Width = Screen.PrimaryScreen.Bounds.Width * 0.6 

この例では、幅が画面幅の60%に設定されています。これはIF文で、ユーザが4Kモニタを持っているかどうかを確認します。そうでない場合は、アプリケーションの起動時にフルスクリーンモードが設定されます。ペパ、あなたの作図領域で同様のことをすることができます。

+0

このコードは間違っています。これは、フォームがプライマリ画面に表示されているという前提をハードコードしていますが、これは必ずしも真実ではありません。複数モニターシステムを検討してください。 –

+0

私は複数のモニタシステムを持っていますが、実際にはすべてのコンピュータに2つのモニタがあります。一部はプライマリモニタとして4K、その他はすべてフルHDです。だから私はあなたが意味することを知っているが、実際にはゼロの問題がある。何年もの試験。 –

+0

コードはそのシナリオでは機能しません。それは 'PrimaryScreen'オブジェクトを使います。セカンダリ画面でプライマリ画面とは異なる解像度が使用されている場合、またはフォームがプライマリ画面にない場合は、間違ったサイズが設定されています。 –