在表单中使用 class 中的方法
Use method from class in form
我的项目 Visibility.cs
中有 class,我想在 Form1
中使用名为 HospodaVisible()
的方法,但它不起作用。它没有显示用户控件。
这里是 class 和 form1
的代码:
public static class Visibility
{
static Form1 f = new Form1();
public static void HospodaVisible()
{
f.hospoda1.Visible = true;
f.arena1.Visible = false;
f.podzemi1.Visible = false;
}
public static void ArenaVisible()
{
f.hospoda1.Visible = false;
f.arena1.Visible = true;
f.podzemi1.Visible = false;
}
public static void PodzemiVisible()
{
f.hospoda1.Visible = false;
f.arena1.Visible = false;
f.podzemi1.Visible = true;
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
hospoda1.Visible = false;
arena1.Visible = false;
podzemi1.Visible = false;
}
private void button1_Click(object sender, EventArgs e)
{
Visibility.HospodaVisible();
}
}
看看这是否适合你:
public static class Visibility
{
public static void HospodaVisible(Form1 f)
{
f.hospoda1.Visible = true;
f.arena1.Visible = false;
f.podzemi1.Visible = false;
}
}
public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Visibility.HospodaVisible(this); // passes a reference to the "current" form, i.e. Form1 itself
}
}
this
是对 class 中 class 的当前实例的引用,换句话说,它是 self
.
在上面的代码中,您将对活动的当前表单的引用传递给静态辅助方法,该方法接受对表单的引用(不实例化表单)并对它进行必要的更改。基本上,它说:“嘿帮手,用 this 表单做点什么”。
我的项目 Visibility.cs
中有 class,我想在 Form1
中使用名为 HospodaVisible()
的方法,但它不起作用。它没有显示用户控件。
这里是 class 和 form1
的代码:
public static class Visibility
{
static Form1 f = new Form1();
public static void HospodaVisible()
{
f.hospoda1.Visible = true;
f.arena1.Visible = false;
f.podzemi1.Visible = false;
}
public static void ArenaVisible()
{
f.hospoda1.Visible = false;
f.arena1.Visible = true;
f.podzemi1.Visible = false;
}
public static void PodzemiVisible()
{
f.hospoda1.Visible = false;
f.arena1.Visible = false;
f.podzemi1.Visible = true;
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
hospoda1.Visible = false;
arena1.Visible = false;
podzemi1.Visible = false;
}
private void button1_Click(object sender, EventArgs e)
{
Visibility.HospodaVisible();
}
}
看看这是否适合你:
public static class Visibility
{
public static void HospodaVisible(Form1 f)
{
f.hospoda1.Visible = true;
f.arena1.Visible = false;
f.podzemi1.Visible = false;
}
}
public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Visibility.HospodaVisible(this); // passes a reference to the "current" form, i.e. Form1 itself
}
}
this
是对 class 中 class 的当前实例的引用,换句话说,它是 self
.
在上面的代码中,您将对活动的当前表单的引用传递给静态辅助方法,该方法接受对表单的引用(不实例化表单)并对它进行必要的更改。基本上,它说:“嘿帮手,用 this 表单做点什么”。