我做了一个简单的抽动,tac,toe游戏。我有两种表单,Form1
和frmStats
。在我的frmStats
上,我有一个标签lblDraw
。
我想要它,所以当玩家进入平局时,标签会增加一个。如何从Form1
的代码中访问该代码?
我的Form1代码:
if (winner != 0)
this.Text = String.Format("Player {0} Wins!", winner);
else if (winner == 0 && turnCounter == 9)
this.Text = "Draw!";
//this is where i want/think the code should be to change the label
else
...
答案 0 :(得分:2)
首先将标签lblDraw
设置为
以frmStats
格式
public string strNumber
{
get
{
return lblDraw.Text;
}
set
{
lblDraw.Text = value;
}
}
<强> Form1中强>
if (winner != 0)
this.Text = String.Format("Player {0} Wins!", winner);
else if (winner == 0 && turnCounter == 9)
{
this.Text = "Draw!";
//this is where i want/think the code should be to change the label
frmStats frm = new frmStats();
string number = frm.strNumber;
frm.strNumber = (Convert.ToInt32(number) + 1).ToString(); //incrementing by 1
}
或者只是将标签lblDraw
修饰符设置为公开,这是不推荐的。
答案 1 :(得分:0)
虽然Mr_Green的答案有效,但我认为这样做的正确方法是在打开它时将Form1作为变量传递给frmStats:
frmStats newForm = new frmStats(this);
在Form1中创建一个属性以访问该数字:
public int Num
{
get
{
return myNumber;
}
}
然后在frmStats构造函数中,您可以访问父窗体的公共属性:
public frmStats(Form1 form)
{
InitializeComponent();
lblDraw.Text = form.Num.ToString();
}