本当にお久しぶりです reaです
現在、ラベルの動的生成処理を作成しており
下記にて15個のラベルを3×5で生成しているのですが、
少しでも処理が軽くなるようにしたいです。(常に動的生成させたい為)
下記のソースで調整できる箇所がございましたら、ご指摘いただけますと幸いです。
また、下記のソースですが、For i= のループでも
やはり変わらないでしょうか。。
ご指摘いただけますと幸いです。
※下記のソースにてコントロールのクリア処理が抜けておりますが、
生成前にコントロールのRemove処理とDispose処理は必ず行っております。
<開発環境>
Visual Studio 2017
<ターゲットフレームワーク>
.NET Framework 3.5
<アプリケーションの種類>
Windows フォームアプリケーション
※動的生成を行うことの経緯ですが、現在はテストなので固定で15個ラベルを必ず生成するように
しておりますが、本来は[1~15]の間で、後続の処理を行った後に都度可変致します。
また、表示列が減る場合5個以下または10個以下の場合には
列を表示しないようにしたい為、動的に行っております。
VB.net
1 2'- 変数 3 Dim Test_Label() As Label '- 生成ラベル(15で固定) 4 Dim Width As Integer = 0 '- 縦位置 5 Dim Hight As Integer = 2 '- 横位置 6 Dim idx As Integer = 0 '- Index 7 8 '- New 9 Test_Label = New Label(15) {} 10 11 For Each d In Test_Label 12 13 '- 縦 14 If idx = 5 Or idx = 10 Then 15 Hight += 36 / VGA 16 End If 17 18 '- 横 19 Select Case idx 20 Case 0, 5, 10 : Width = 3 21 Case 1, 6, 11 : Width = 97 22 Case 2, 7, 12 : Width = 191 23 Case 3, 8, 13 : Width = 285 24 Case 4, 9, 14 : Width = 379 25 End Select 26 27 '- Property 28 d = New Label With { 29 .Name = "Label_" & idx, 30 .Size = New System.Drawing.Size(95, 37), 31 .BackColor = Color.DarkGreen, 32 .ForeColor = Color.White, 33 .Font = New System.Drawing.Font("MS ゴシック", 24), 34 .Location = New Point(Width, Hight), 35 .Text = "T_" & idx.ToString 36 } 37 '- コントロールの追加 38 Me.Pnl_Test.Controls.Add(d) 39 '- Index +1 40 idx += 1 41 Next 42
回答1件
あなたの回答
tips
プレビュー