質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

3101閲覧

vb.netでフォームの大きさが1106より大きくならない

tada_tadaa

総合スコア111

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2021/12/23 11:27

Visual Studio Community 2017のVB.netでフォームを拡大しているのですが、ボタンを押してフォームの高さと幅を拡大していくと、フォームの高さが1106で高さの拡大がストップしてしまいます。フォームの高さの拡大がストップしても横幅はしばらく拡大するのですが3306の大きさで横幅もストップしてしまいます。いくらボタンを押してもフォームの大きさは高さ1106、横幅3306より大きくなりません。横幅は3306もあるのでそんなに大きくする必要性は感じないのですが、高さが1106より大きくならないので困っています。

以下に簡単なソースを載せます。

vb

1Public Class Form1 2 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 3 Me.Height *= 1.1 4 Me.Width *= 1.1 5 6 TextBox1.Text = Me.Height 7 TextBox2.Text = Me.Width 8 End Sub 9End Class

ちなみに高さが1106より大きくならないと判断しているのは、フォームに設置されたテキストボックスの値が1106より大きくならない事から判断しています。
どのようにすれば高さをもっと大きくできるでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tada_tadaa

2021/12/23 12:15

どうもありがとうございました。
guest

回答1

0

自己解決

KOZ6.0様に教えていただいたリンク先のページを参考に、以下のソース文で高さも横幅も、1106、3306より大きくすることができました。

vb.net

1Public Class Form1 2 3 <System.Runtime.InteropServices.DllImport("user32.dll")> 4 Private Shared Function MoveWindow( 5 ByVal hWnd As IntPtr, 6 ByVal X As Integer, 7 ByVal Y As Integer, 8 ByVal nWidth As Integer, 9 ByVal nHeight As Integer, 10 ByVal bRepaint As Boolean) As Boolean 11 End Function 12 13 ''' <summary> 14 ''' ウィンドウの位置とサイズを変更する 15 ''' </summary> 16 ''' <param name="rect">変更後のウィンドウの位置とサイズ</param> 17 Public Sub SetWindowBounds(ByVal rect As Rectangle) 18 'MaximumSizeを大きくしておく 19 If Me.MaximumSize.Width < rect.Width Then 20 Me.MaximumSize = 21 New Size(rect.Width, Me.MaximumSize.Height) 22 End If 23 If Me.MaximumSize.Height < rect.Height Then 24 Me.MaximumSize = 25 New Size(Me.MaximumSize.Width, rect.Height) 26 End If 27 28 MoveWindow(Me.Handle, rect.X, rect.Y, rect.Width, rect.Height, True) 29 Me.UpdateBounds() 30 31 TextBox1.Text = Me.Height 32 TextBox2.Text = Me.Width 33 End Sub 34 35 36 'Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 37 ' Me.Height *= 1.1 38 ' Me.Width *= 1.1 39 40 ' TextBox1.Text = Me.Height 41 ' TextBox2.Text = Me.Width 42 'End Sub 43 44 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 45 Dim rect1 As Rectangle 46 rect1.X = Me.Location.X 47 rect1.Y = Me.Location.Y 48 rect1.Height = Me.Height * 1.1 49 rect1.Width = Me.Width * 1.1 50 51 SetWindowBounds(rect1) 52 End Sub 53End Class

どうもありがとうございました。

投稿2021/12/23 12:14

tada_tadaa

総合スコア111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tada_tadaa

2021/12/23 12:21

https://dobon.net/vb/dotnet/form/maxwindowtracksize.htmlより ” 通常フォームの大きさは、SystemInformation.MaxWindowTrackSizeプロパティで取得できる大きさより大きくすることができません。これは、「フォームの位置と大きさを取得、変更する」や「フォームのサイズを制限する」で説明している通りです。 どうしてもフォームをMaxWindowTrackSize以上の大きさにしたい場合は、Win32 APIを使用する必要があります。” だそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問