PGの実行中に動的に作成したLabelを削除するには

解決


ぽんた  2007-04-25 01:37:33  No: 136206

Dim lblDay As Label

For j = 0 To dgv.RowCount - 1
  lblDay = New Label
  lblDay.Parent = Panel1
  lblDay.ForeColor = G_fColor(1)
  lblDay.Text = dgv.Rows(j).Cells(0).Value
  lblDay.AutoSize = True
  lblDay.Dock = DockStyle.Top
Next

作成はできたのですが、削除する方法がわかりません。
削除は「For」文の前に行いたいのですが、
どなたかご教授ください。


ぽんた  2007-04-25 01:58:04  No: 136207

ソースは以下の通りです

Dim dgv As New DataGridView
Dim lblDay As Label

If System.IO.File.Exists(strFnm) Then
  intFNo = FreeFile() '使用可能なファイル番号を取得
  FileOpen(intFNo, strFnm, OpenMode.Input)

  Do While Not EOF(intFNo) 'ファイルの終端まで繰り返す
    strRec = Split(LineInput(intFNo), ",")
    If mm.ToString = Trim(strRec(0)) Then
      For i = 1 To UBound(strRec) Step 2
        dgv.Rows.Add()
        dgv.Rows(j).Cells(0).Value = strRec(i).PadLeft(2)
        dgv.Rows(j).Cells(1).Value = strRec(i + 1)
        j = j + 1
      Next
    End If
  Loop

  FileClose(intFNo)
End If

For j = 0 To dgv.RowCount - 1
  lblDay = New Label
  lblDay.Parent = Panel1
  lblDay.ForeColor = G_fColor(1)
  lblDay.Text = dgv.Rows(j).Cells(0).Value
  lblDay.AutoSize = True
  lblDay.Dock = DockStyle.Top
Next


大吉末吉  2007-04-25 04:21:44  No: 136208

「Panel1.Controls」から削除すればよさそうですけど・・・

例えば、無条件に全部削除するなら、
-------------------------------------------------
        Dim i As Integer
        For i = Panel1.Controls.Count - 1 To 0 Step -1
            Panel1.Controls.RemoveAt(i)
        Next
-------------------------------------------------
とか・・・


ぽんた  2007-04-25 17:31:33  No: 136209

大吉小吉さん
ありがとうございます。

なるほど!!!
パネル内にあるコントロールを削除すればよいわけですね!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加