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

わんくま同盟

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

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

■96014 / 2階層)  フォーム初期化時にTableLayoutPanelを取得でき
□投稿者/ Hongliang (1096回)-(2020/10/15(Thu) 22:45:17)
2020/10/15(Thu) 22:56:33 編集(投稿者)
InitializeComponent()内のtableLayoutPanel1.SuspendLayout()が原因ですが、
なぜそうなるかはさすがに追いきれませんでした。
// わざわざインテリセンスに出ないようにしてるのはこの辺の挙動の不安定さからなのかしら。

とりあえず回避策として、BeginInvokeでちょっと実行を遅らせればなんとかなるようです。

Sub Form1_Load(略) Handles MyBase.Load
    Me.BeginInvoke(New MethodInvoker(AddressOf GetSizes))
End Sub

Sub GetSizes()
    Dim heights = TableLayoutPanel1.GetRowHeights()
    Dim widths = TableLayoutPanel1.GetColumnWidths()
End Sub

<追記>
ちなみにShownイベントでなら問題なく取得できるようなので、
問題なければこちらのイベントを使うのもいいでしょう。
</追記>

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: フォーム初期化時にTableLayoutPanelを取得でき /半角 返信無し
 
上記関連ツリー

フォーム初期化時にTableLayoutPanelを取得でき / 半角 (20/10/14(Wed) 17:44) #95986
Re[1]: フォーム初期化時にTableLayoutPanelを取得でき / 半角 (20/10/15(Thu) 21:40) #96013
│└ フォーム初期化時にTableLayoutPanelを取得でき / Hongliang (20/10/15(Thu) 22:45) #96014 ←Now
Re[1]: フォーム初期化時にTableLayoutPanelを取得でき / WebSurfer (20/10/16(Fri) 09:08) #96015
  └ Re[2]: フォーム初期化時にTableLayoutPanelを取得でき / 半角 (20/10/16(Fri) 15:36) #96021 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信