メソッド内にラベルが作成されています。次に、値を長さ5から20文字に変更するグローバル文字列があります。 strSuccessはグローバルに宣言されます。メソッドに残した後にローカルコントロールを破棄する方法は?
private void button1_Click(object sender, EventArgs e)
{
//First Trial, didn't works
Label lbl = new Label();
Controls.Add(lbl);
lbl.Location = new Point(locationX, locationY);
lbl.Text = strSuccess;
lbl.BringToFront();
//Second Trial
//I tried using but still didnt works
Label lbl;
using (lbl = new Label())
{
Controls.Add(lbl);
lbl.Location = new Point(locationX, locationY);
lbl.Text = strSuccess;
lbl.BringToFront();
}
}
問題は、ボタンをクリックするたびにstrSuccessの値が更新されるときです。例:C#からPython; strSuccess = C#hon。それは重なる。ユーザーがボタンをクリックするたびに、新しいラベルが作成されます。どのようにしてローカルに作成されたラベルを適切に固定または廃棄するか。グローバルラベルとコンテナの作成はオプションではありません。
毎回新しいラベルを作成するのはなぜですか?すでに存在するラベル(または一度作成されたラベル)のテキストを更新することはできませんか? – user3185569
'//最初の試練、didnt works' - 定義**は動作しませんでした**。 – mjwills
@ user3185569私は毎回そのメソッドでそのラベルを使用するため作成しました。以前のローカルラベルがメソッド内に正しく配置されていないため、テキストを更新できません。それはlbl.DisposeAfterLeavingMethod()のようにする必要があります。ボタンをクリックすると新しいラベルが作成されます。 – Vincent