e.CommandArgument para el botón asp no funciona

Estoy desarrollando una aplicación asp.net usando C #. Creé una página .aspx y coloqué cuatro botones en diferentes ubicaciones de la página. En el lado del servidor, quiero usar solo un evento de clic para los cuatro botones.

Aquí está mi código:

aspx page

<asp:Button ID="Button1" runat="server" CommandArgument="Button1" onClick = "allbuttons_Click" />
<asp:Button ID="Button2" runat="server" CommandArgument="Button2" onClick = "allbuttons_Click" />
<asp:Button ID="Button3" runat="server" CommandArgument="Button3" onClick = "allbuttons_Click" />
<asp:Button ID="Button4" runat="server" CommandArgument="Button4" onClick = "allbuttons_Click" />

cs página

protected void allbuttons_Click(object sender, EventArgs e)
{
    //Here i want to know which button is pressed
    //e.CommandArgument gives an error
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta