C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

minimized状態からnormalに戻した時のサイズ位置 /とろる (19/09/07(Sat) 14:07) #92281
Re[1]: minimized状態からnormalに戻した時のサイズ位置 /Hongliang (19/09/07(Sat) 14:35) #92282
  └ Re[2]: minimized状態からnormalに戻した時のサイズ位置 /とろる (19/09/07(Sat) 15:20) #92283
    └ Re[3]: minimized状態からnormalに戻した時のサイズ位置 /Hongliang (19/09/07(Sat) 16:14) #92284
      └ Re[4]: minimized状態からnormalに戻した時のサイズ位置 /KOZ (19/09/07(Sat) 16:51) #92285
        └ Re[5]: minimized状態からnormalに戻した時のサイズ位置 /とろる (19/09/08(Sun) 10:51) #92286 解決済み


親記事 / ▼[ 92282 ]
■92281 / 親階層)  minimized状態からnormalに戻した時のサイズ位置
□投稿者/ とろる (1回)-(2019/09/07(Sat) 14:07:58)

分類:[.NET 全般] 


VBに関する質問です。


フォームのサイズに関する情報は
Form.Bounds
で取得できるのですが、ウインドウが最小化した状態で取得すると
最小化した状態でのサイズが取得されてしまいます。

現在、最小化してあるウインドウで
最小化した状態を解除した時のサイズ、位置を取得・設定するには
どのパラメータを参照すれば良いですか?



[ □ Tree ] 返信 編集キー/

▲[ 92281 ] / ▼[ 92283 ]
■92282 / 1階層)  Re[1]: minimized状態からnormalに戻した時のサイズ位置
□投稿者/ Hongliang (887回)-(2019/09/07(Sat) 14:35:24)
RestoreBoundsプロパティはどうでしょうか。
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.form.restorebounds?view=netframework-4.7.2

なお、WindowStateがNormalかどうかでBoundsプロパティと呼び分ける必要があるようです。
> The value of the RestoreBounds property is valid only when the WindowState property of the Form class is not equal to Normal.
[ 親 92281 / □ Tree ] 返信 編集キー/

▲[ 92282 ] / ▼[ 92284 ]
■92283 / 2階層)  Re[2]: minimized状態からnormalに戻した時のサイズ位置
□投稿者/ とろる (2回)-(2019/09/07(Sat) 15:20:47)
ありがとうございます。

試してみたのですが、
RestoreBoundsの値を書き換えようとすると
ReadOnlyだと言われて、エラーが出ます。
書き換えるにはどのようにしたら良いですか?
[ 親 92281 / □ Tree ] 返信 編集キー/

▲[ 92283 ] / ▼[ 92285 ]
■92284 / 3階層)  Re[3]: minimized状態からnormalに戻した時のサイズ位置
□投稿者/ Hongliang (888回)-(2019/09/07(Sat) 16:14:07)
Normalに戻したときに、Minimizeした時とは別の位置に復元(と言っていいのか)したいのであれば、Boundsプロパティに設定しておけばいいかと。
// とりあえずWindows 10 1903ではそれで問題なさそうです。
[ 親 92281 / □ Tree ] 返信 編集キー/

▲[ 92284 ] / ▼[ 92286 ]
■92285 / 4階層)  Re[4]: minimized状態からnormalに戻した時のサイズ位置
□投稿者/ KOZ (26回)-(2019/09/07(Sat) 16:51:01)
RestoreBounds は SetBoundsCore で設定できそうです。

https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Form.cs,5caee25123567f7b

Public Class Form1
    Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize
        If WindowState = FormWindowState.Minimized Then
            SetBoundsCore(0, 0, 100, 100, BoundsSpecified.All)
        End If
    End Sub
End Class

[ 親 92281 / □ Tree ] 返信 編集キー/

▲[ 92285 ] / 返信無し
■92286 / 5階層)  Re[5]: minimized状態からnormalに戻した時のサイズ位置
□投稿者/ とろる (3回)-(2019/09/08(Sun) 10:51:54)
ありがとうございます。

Boundsプロパティでいけました

SetBoundsCoreも試してみましたが
formクラス以外から呼び出そうとすると
protectedだと言われてうまくいきませんでした。

解決済み
[ 親 92281 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -