我目前正在写一个XO游戏与C#和有问题。 XO表是一个asp按钮的集合,我想写一个函数,在每个按钮中放入X或O值 - 它需要是动态的。我该怎么写这样的功能?这是我到目前为止所做的一个例子。XO游戏在ASP.net和C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
turndisplay.Visible = true;
Session["p1"] = player1;
Session["p2"] = player2;
player1.setsymbol("X");
player2.setsymbol("O");
//Button1.Click += Button1_Click;
//Button2.Click += Button_Click;
//Button3.Click += Button_Click;
//Button4.Click += Button_Click;
//Button5.Click += Button_Click;
//Button6.Click += Button_Click;
//Button7.Click += Button_Click;
//Button8.Click += Button_Click;
//Button9.Click += Button_Click;
}
if (turn == 0)
{
turndisplay.Text = (Session["player1"] as Player).getname();
}
else
{
turndisplay.Text = (Session["player2"] as Player).getname();
}
}
public void pushthebutton() // currently effects only on button 1 !
{
if (turn == 0)
{
player1.setsymbol("X");
Button1.Text = (Session["p1"]as Player).getsymbol();
turndisplay.Text = (Session["player2"] as Player).getname();
turn = 1;
}
else
{
player2.setsymbol("O");
Button1.Text = player2.getsymbol();
turndisplay.Text = (Session["player1"] as Player).getname();
turn = 0;
}
}
protected void Button1_Click(Button sender, EventArgs e)
{
if (Button1.Text == " ")
{
pushthebutton();
gamecheck();
}
}
我该如何影响玩家想要的每个按钮,而不用写9次?
编辑后*所以你说..改变(对象发件人)为(按钮发件人)?但我的功能pushtebutton只知道Button1.Text
@WilliamCustode有你答案。为按钮单击事件创建一个方法 - 并将该方法分配给每个按钮“OnClick”事件。你需要将'sender'转换为'Button'类型,然后你可以得到'Text'属性 - 'Button btn = sender as Button; if(btn!= null){if(btn.Text ==“”){}}' – Tim