C#の新機能です。問題は解決できません。label.textを取得できません。C#
私は、複数のtabpagesに同じラベルを作成しました:
public Label ChosenType = new Label();
private void EvalType()
{
Label labelChosenType = new Label();
labelChosenType.AutoSize = false;
labelChosenType.Left = 710;
labelChosenType.Top = 3;
labelChosenType.Width = 350;
labelChosenType.Height = 96;
labelChosenType.Text = "Some text";
labelChosenType.Font = new Font("Arial", 14, FontStyle.Bold);
labelChosenType.TextAlign = ContentAlignment.MiddleCenter;
labelChosenType.BackColor = Color.Red;
labelChosenType.ForeColor = Color.White;
labelChosenType.Click += new EventHandler(labelChosenType_Click);
tabControl1.SelectedTab.Controls.Add(labelChosenType);
}
private void SetGeneralInfo()
{
for (int i = 0; i < tabControl1.TabCount; i++)
{
tabControl1.SelectTab(i);
EvalType();
}
}
private void labelChosenType_Click(object sender, EventArgs e)
{
MessageBox.Show(labelChosenType.Text);
}
問題は、メッセージボックスが空白であるということです。なぜ私はラベルからテキストを取得できないのですか?
私は= "some text" + iのような名前を追加しようとしましたが、それはすべてのタブで同じでしたが、それはありませんでした(これは主な機能ではありません)仕事はありません。
ありがとうございました!あなたの現在の構造のよう(それはvoid関数の外にする必要があります)ラベルは、プライベート公開/オブジェクト宣言する必要があり
メッセージボックスが表示されますが、ラベルオブジェクトのインスタンス化が唯一voidメソッドに制限されているよう – donmichael
はそう、あなたが 'labelChoosenType_Click()'メソッドはvoidメソッド – TheQuestioner
outside' 'それを配置する必要があり、空白であります、 'labelChoosenType'識別子は何を指していますか?これは 'EvalType()'メソッドで宣言された** local **変数 'labelChoosenType'を参照していません。あなたはそれを何か有用なものに設定しましたか?問題を確実に再現する良い[mcve]を提供してください。ああ、その言葉は「選ばれた」と綴られています。 –