お世話になります。
###前提
現在、WinFormアプリをVB.NETで作成しています。
またボタンをクリックすることでMonthCalendarのサイズに合わせたフォームを表示するフォームを作成しています。
このMonthCalendarのサイズに合わせたフォームを作成するときに以下の問題が発生しました。
###発生している問題
デバッグモードでインスタンスのプロパティを見ることで、プロパティの値が変化する。
###該当のソースコード
簡略化したソースコードを載せておきます。
VB.NET
1Public Class Form 2 Public Sub New() 3 InitializeComponent() 4 5 Dim button As New Button() 6 AddHandler button.Click, AddressOf Button_Click 7 Me.Controls.Add(button) 8 End Sub 9 10 Private Sub Button_Click(sender As Object, e As EventArgs) 11 Dim f As New Form() 12 Dim calendar As New MonthCalendar() 13 14 f.FormBorderStyle = FormBorderStyle.None 15 f.Size = calendar.Size 'デバッグモードでSizeを直接見た場合とcalendarの中のsizeを見た場合で値が異なり、 16 'インスタンスを経由したあとに、再度Sizeを直接見ると値が反映されている。 17 f.Controls.Add(calendar) 18 f.Show() 19 End Sub 20End Class
###試したこと
コンソールに出力した場合はSizeを直接見た場合の値が出力されます。
コントロールをDataGridViewやButtonに変えて確認したところ、特に問題はありませんでした。(Sizeに乖離がない)
###補足情報(言語/FW/ツール等のバージョンなど)
環境は
Windows7
VisualStudio2010
です。
また似たような問題がDataTableにおいても発生しております。
こちらはデータバインディングでDataTable型のプロパティの内容をDataGridViewに表示しているのですが、
プロパティを更新した後にデバッグモードでプロパティの値を直接確認しないとDataGridViewに反映されません。
(デバッグモードでプロパティの値を見ることで動作が変化するという共通点があるため一応この情報も載せておきました。)
もしこの現象の原因や解決方法に心当たりがあれば教えていただけないでしょうか?
よろしくお願いします。
追記
カレンダが載っているフォームのサイズに関してはAutoSizeModeをGrowAndShrink、AutoSizeをtureに変更することで解決できました。
ただデバッグモードでプロパティの値を見ることで動作が変化するという現象は解決できておりませんので引き続きお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/28 04:44
退会済みユーザー
2017/10/28 05:38
2017/10/28 06:11
退会済みユーザー
2017/10/28 07:49
退会済みユーザー
2017/10/28 08:03
2017/10/28 08:23
退会済みユーザー
2017/10/28 08:25 編集
退会済みユーザー
2017/10/29 02:26
2017/10/29 06:29