Create buttons at runtime

Asked

Viewed 1,116 times

2

I intend to create a small web game where the user will make the decision of the characters at runtime. At the moment I have the following screen:inserir a descrição da imagem aqui

When the user clicks on the left button, for example, he would like a label to be created below the left button, along with 2 buttons A and B setting also a block of code on click to the A button, and another to the B button. Visually, after clicking on the left button, would look this way: inserir a descrição da imagem aqui

Code C# I have at the moment:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ProjetoG1
{
    public partial class Padrao : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("Seja bem vindo(a) ao futuro game!" + "<br>");
        }

        protected void btnEsquerda_Click(object sender, EventArgs e)
        {
            Response.Write("Você escolheu o botão esquerdo, então irá terá que escolhe entre os botões A e B");
            /* Aqui é onde quero criar o botão A e B, incluindo o código onclick que será executado quando esses botões
            Forem clicados  */
        }

        protected void btnDireita_Click(object sender, EventArgs e)
        {
            Response.Write("Você escolheu o botão direito, então irá terá que escolhe entre os botões C e D");
            /* Aqui é onde quero criar o botão C e D, incluindo o código onclick que será executado quando esses botões
            Forem clicados  */
        }
    }
}

HTML code:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Padrao.aspx.cs" Inherits="ProjetoG1.Padrao" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        Teste de interação com o usuário. Escolhe o botão da esquerda ou direita para continuar. A história seguirá rumos diferentes em cada um dos botões.<br />

    </div>
        <asp:Button ID="btnEsquerda" runat="server" OnClick="btnEsquerda_Click" Text="Esquerda" />
        <asp:Button ID="btnDireita" runat="server" OnClick="btnDireita_Click" Text="Direita" Width="93px" />

    </form>
</body>
</html>

How could I encode that?

1 answer

2

Hello, you can do it this way.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Botoes.aspx.cs" Inherits="WebApplication1tiraduvidas.Botoes" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    Teste de interação com o usuário. Escolhe o botão da esquerda ou direita para continuar.
    A história seguirá rumos diferentes em cada um dos botões.<br />
  </div>
  <div>
    <asp:Button ID="btnEsquerda" runat="server" OnClick="btnEsquerda_Click" Text="Esquerda" />
    <asp:Button ID="btnDireita" runat="server" OnClick="btnDireita_Click" Text="Direita"
      Width="93px" />
  </div>
  <div>
    <asp:Label ID="lblmsg" runat="server" Visible="false"></asp:Label>
  </div>
  <div>
    <asp:Table ID="Table1" runat="server">
    </asp:Table>
  </div>
  </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1tiraduvidas
{
    public partial class Botoes : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void btnEsquerda_Click(object sender, EventArgs e)
        {
            lblmsg.Text = String.Empty;
            lblmsg.Visible = true;
            lblmsg.Text = "Você escolheu o botão esquerdo, então irá terá que escolhe entre os botões A e B";

            TableRow trA = new TableRow();
            TableCell tdA = new TableCell();
            Button btA = new Button { ID = "btnEsquerda_A" };
            btA.Text = "A";
            btA.Click += new EventHandler(butA_Click);
            tdA.Controls.Add(btA);
            trA.Cells.Add(tdA);
            Table1.Rows.Add(trA);

            TableCell tdB = new TableCell();
            Button btB = new Button { ID = "btnEsquerda_B" };
            btB.Text = "B";
            btB.Click += new EventHandler(butB_Click);
            tdB.Controls.Add(btB);
            trA.Cells.Add(tdB);
            Table1.Rows.Add(trA);
        }

        protected void btnDireita_Click(object sender, EventArgs e)
        {
            lblmsg.Text = String.Empty;
            lblmsg.Visible = true;
            lblmsg.Text = "Você escolheu o botão direito, então irá terá que escolhe entre os botões C e D";

            TableRow trC = new TableRow();
            TableCell tdC = new TableCell();
            Button btC = new Button { ID = "btnEsquerda_C" };
            btC.Text = "C";
            btC.Click += new EventHandler(butC_Click);
            tdC.Controls.Add(btC);
            trC.Cells.Add(tdC);
            Table1.Rows.Add(trC);

            TableCell tdD = new TableCell();
            Button btD = new Button { ID = "btnEsquerda_B" };
            btD.Text = "D";
            btD.Click += new EventHandler(butD_Click);
            tdD.Controls.Add(btD);
            trC.Cells.Add(tdD);
            Table1.Rows.Add(trC);
        }

        protected void butA_Click(object sender, EventArgs e)
        {

        }
        protected void butB_Click(object sender, EventArgs e)
        {

        }
        protected void butC_Click(object sender, EventArgs e)
        {

        }
        protected void butD_Click(object sender, EventArgs e)
        {

        }
    }
}
  • The first part worked. Clicking on the left was created the button A and button B. Set the following code to the button A: Response.Write("You Chose the button A"); But when I click on it, instead of printing it below the buttons/Boxes, it disappears with the button A and B.

  • Response.Write, this is using in Console application...

  • for some reason the page is not going to the event on click of the Buta and executing the code inside it, by simply clicking the button A and B disappears.

  • I tried to change the text of the lblmsg inside the Uta click but when clicking the A button it hid the same way

  • btC had the same id as Buta I made a change in response.

  • The A, B, C, D buttons all keep disappearing when I click on them.

  • yes, they are not created again.... ideally you create a method and put the buttons there is only flame inside each event you click.

Show 2 more comments

Browser other questions tagged

You are not signed in. Login or sign up in order to post.