私は、プロジェクト内のフォームにいくつかのコントロールをプログラムで追加しています。タイマーがきたら、既存のコントロールをすべて削除し、新しいコントロールと新しいこれは恐ろしいコードですか?)フォームからすべてのコントロールを削除する
私はmsdnを見て、私が欲しいことをするように聞こえるcontrolcollection.clear()メソッドを見つけました。しかし、私はメソッドを使用しようとするたびに、 "非共有メンバーへの参照はオブジェクト参照が必要です"というエラーをあやふやにします。
どうしてですか?私は初心者であり、非共有メンバーが何であるか(またはそれらが何であるか)、またはオブジェクト参照を与える方法がわかりません。
この私が使用していたコードではありませんが、私はそれが最も簡単にポイントを示していると思う:
Private Sub add_and_remove()
For i = 0 To 10
Dim t As New TextBox
t.Text = "whatever"
Me.Controls.Add(t)
Next
Me.ControlCollection.Clear()
End Sub
感謝を事前に!コメントから
'ControlCollection'は型です。 'Controls'は、' ControlCollection'型のインスタンスです。実行時にコントロールを作成することは、アプリケーションの漏洩を防ぐために、それらを廃棄する責任があることに注意してください。 – Plutonix
ああ、それは簡単な笑だった!ありがとう。それを答えとして加えてください(controlcollectionではなくcontrolsを使用してください)。私はそれを受け入れますか? – grumpasaurus
"既存のコントロールをすべて削除し、新しいコントロールと新しい更新データ(これは恐ろしいコーディングですか?)" - ほぼ確実です。コントロールをそのままの状態にして、必要に応じてコントロールのプロパティを更新します。 –