[ad_1]
VB.netでカレンダーを作りました。 これは、ユーザーコントロールで満たされた FlowLayoutPanel です。 縦方向に表示する自動スクロールを設定しています。
すべてのユーザー コントロールが flowlayoutpanel に設定された後、以下のコードが実行されます。 テスト目的なので、実際に動かしてみるだけです。 最初のメッセージ ボックスは、コントロールを削除した後に最大値が予想どおりに増減するため、正しい位置と最大値 (0 9221) を表示しているように見えます。 ただし、スクロールを設定すると、ロードされると上部に配置されたままになり、次に表示されるメッセージボックスにはまだ 0 と表示されます。
VB
MessageBox.Show(FlowLayoutPanel1.VerticalScroll.Value & " " & FlowLayoutPanel1.VerticalScroll.Maximum) FlowLayoutPanel1.VerticalScroll.Value = FlowLayoutPanel1.VerticalScroll.Value + 500 MessageBox.Show(FlowLayoutPanel1.VerticalScroll.Value)
助けていただければ幸いです。
私が試したこと:
flowlayoutpanel で自動スクロールを無効にし、コードを通じてスクロールバーを追加しようとしましたが、バーがまったく表示されません。
最終的な目標は、ロード時に現在の週まで自動スクロールすることです。
解決策 1
私自身の質問に答えます。 Form_Shown イベントを追加したところ、動作するようになりました。 また、今週(またはその近く)までスクロールする最終目標のスクロール位置コードにも追加されました。 ありがとう!
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown Dim dateNow = DateTime.Now Dim dfi = DateTimeFormatInfo.CurrentInfo Dim calendar = dfi.Calendar Dim weekOfyear = calendar.GetWeekOfYear( dateNow, dfi.CalendarWeekRule, DayOfWeek.Sunday) Dim scrollPos As Integer = Convert.ToInt32(FlowLayoutPanel1.VerticalScroll.Maximum * (weekOfyear / 57)) FlowLayoutPanel1.VerticalScroll.Value = scrollPos End Sub
[ad_2]
コメント