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

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

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

minimized状態からnormalに戻した時のサイズ位置

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■92281 / inTopicNo.1)  minimized状態からnormalに戻した時のサイズ位置
  
□投稿者/ とろる (1回)-(2019/09/07(Sat) 14:07:58)

分類:[.NET 全般] 


VBに関する質問です。


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

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



引用返信 編集キー/
■92282 / inTopicNo.2)  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.
引用返信 編集キー/
■92283 / inTopicNo.3)  Re[2]: minimized状態からnormalに戻した時のサイズ位置
□投稿者/ とろる (2回)-(2019/09/07(Sat) 15:20:47)
ありがとうございます。

試してみたのですが、
RestoreBoundsの値を書き換えようとすると
ReadOnlyだと言われて、エラーが出ます。
書き換えるにはどのようにしたら良いですか?
引用返信 編集キー/
■92284 / inTopicNo.4)  Re[3]: minimized状態からnormalに戻した時のサイズ位置
□投稿者/ Hongliang (888回)-(2019/09/07(Sat) 16:14:07)
Normalに戻したときに、Minimizeした時とは別の位置に復元(と言っていいのか)したいのであれば、Boundsプロパティに設定しておけばいいかと。
// とりあえずWindows 10 1903ではそれで問題なさそうです。
引用返信 編集キー/
■92285 / inTopicNo.5)  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

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

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

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

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ