Visual C# – Capturar evento clic de un botón

publicado por: Anonymous

Quisiera saber cómo crear una función que capture si el botón “sumarBtn” es presionado.

Public void operar(float a, float b) {
    if (sumarBtn is Pressed) {
        //Hello!! 
    } else if (restarBtn is Pressed) {
        //hello
    } else if (multiplicarBtn is Pressed) {
        //hello
    } else if (dividirBtn is Pressed) {
        //hello
    } else {
        //ningún botón presionado, error
    } 
} 

solución

Si entiendo bien tu pregunta, quieres saber si el button sumarbtn ha sido presionado en algún momento.

Una manera de solucionarlo es utilizar el click del propio botón para guardar en una variable propia que éste ha sido presionado y así con posterioridad poder consultar si éste ha sido pulsado. Cómo lo haría:

private bool sumarBtnFuePresionado = false;

private void sumarBtn_Click(object sender, EventArgs e)
{
    sumarBtnFuePresionado = true;
}

Public void operar(float a, float b) {
    if (sumarBtnFuePresionado ) {
        //Hello!! 
    } 
} 

La única manera que hay de saber si un botón se ha presionado es con el propio método click por eso es necesario utilizar el evento OnClick() para guardarte esta información.

Si tienes varios botones tienes que replicar esta lógica en cada uno de ellos. Dado tu ejemplo:

private bool sumarBtnFuePresionado = false;
private bool restarBtnFuePresionado = false;
private bool multiplicarBtnFuePresionado = false;
private bool dividirBtnFuePresionado = false;

private void sumarBtn_Click(object sender, EventArgs e)
{
    sumarBtnFuePresionado = true;
}

private void restarBtn_Click(object sender, EventArgs e)
{
    restarBtnFuePresionado = true;
}

private void multiplicarBtn_Click(object sender, EventArgs e)
{
    multiplicarBtnFuePresionado = true;
}

private void dividirBtn_Click(object sender, EventArgs e)
{
    dividirBtnFuePresionado = true;
}

Public void operar(float a, float b) {
    if (sumarBtnFuePresionado) {
        //Hello!! 
    } else if (restarBtnFuePresionado) {
        //hello
    } else if (multiplicarBtnFuePresionado) {
        //hello
    } else if (dividirBtnFuePresionado) {
        //hello
    } else {
        //ningún botón presionado, error
    } 

    //reiniciar los valores si esto es lo que quieres
    sumarBtnFuePresionado = false;
    restarBtnFuePresionado = false;
    multiplicarBtnFuePresionado = false;
    dividirBtnFuePresionado = false;

} 

Cómo puedes ver al final puedes (o no) reiniciar los bool para que se haga un ‘reset’ y cuándo vuelvas a llamar esa función tenga en cuenta sólo los buttons presionados después de llamar esta función.

Todo este código es asumiendo que los botones que tengas definidos tengas en su tag la etiqueta OnClick="nombreBoton_Click"

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *