【发布时间】:2016-09-06 23:59:20
【问题描述】:
我是 C# 新手,现在遇到一个无法解决的问题。
我在多个标签页上创建了相同的标签:
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);
}
问题是消息框是空白的。为什么我无法从标签中获取文本? (这不是主要功能,但这是显示问题的最简单方法)
我尝试添加 name like="some text" + i,但在所有选项卡上都相同,但它不起作用。
谢谢!
【问题讨论】:
-
出现消息框,但为空白
-
好像标签对象的实例化仅限于void方法,你需要把它
outsidevoid方法 -
在
labelChoosenType_Click()方法中,labelChoosenType标识符指的是什么?它绝对不是引用EvalType()方法中声明的local 变量labelChoosenType。你有没有把它设置为有用的东西?请提供一个好的minimal reproducible example 可靠地重现问题。哦,这个词拼写为“选择”。
标签: c# event-handling label add creation