请问,这有什么问题:
private void Form2_Load(object sender, EventArgs e)
{
switch (Form2.Tag) //error
{
case "desc":
MessageBox.Show("desc");
break;
case "sms":
MessageBox.Show("sms");
break;
}
}
错误:
An object reference is required for the non-static field, method, or property System.Windows.Forms.Control.Tag.get
答案 0 :(得分:2)
你可能想说this.Tag
。引用Tag
属性将需要Form2
的实例,因此会收到您收到的错误消息。
编辑:
忘记Tag
是一个对象。将它转换为字符串,你的陈述应该有效:
switch ((string)this.Tag)
答案 1 :(得分:2)
由于Tag
不是静态属性,因此您无法通过类名即Form2访问它。 Tag也是object
类型,您不能在switch语句中使用它。由于您的案例属于字符串类型,您可以尝试以下方法:
string tag = (string) this.Tag;
switch (tag) //error
{
case "desc":
MessageBox.Show("desc");
break;
case "sms":
MessageBox.Show("sms");
break;
}
答案 2 :(得分:1)
您的代码应为:
switch ((string)this.Tag)