none
Botton click RRS feed

  • Pregunta

  • El problema viene de cuando implemente la orden button_click a un boton.

    Lo primero: El evento se produce al soltar el botón y no al hacer click en él.

    Lo segundo: Como puedo hacer para que envie esa mientras el botón esté pulsado.

     

     

    sábado, 12 de febrero de 2011 11:30

Respuestas

  • Efectivamente, el evento click se produce al soltar el botón. De hecho, puedes pulsar un botón, y sin soltar, sacar el puntero del ratón fuera del botón, y soltar ahi. El click no se produce. Esto es general en todas las aplicaciiones de Windows, no es algo específico de .Net ni de Windows Forms.

    Si realmente te quieres enterar de cuándo bajan el botón, puedes usar el evento MouseDown.Sabrás cuándo dejan de pulsarlo porque recibirás un evento MouseUp.

     

    sábado, 12 de febrero de 2011 16:57

Todas las respuestas

  • Efectivamente, el evento click se produce al soltar el botón. De hecho, puedes pulsar un botón, y sin soltar, sacar el puntero del ratón fuera del botón, y soltar ahi. El click no se produce. Esto es general en todas las aplicaciiones de Windows, no es algo específico de .Net ni de Windows Forms.

    Si realmente te quieres enterar de cuándo bajan el botón, puedes usar el evento MouseDown.Sabrás cuándo dejan de pulsarlo porque recibirás un evento MouseUp.

     

    sábado, 12 de febrero de 2011 16:57
  • Hola antonio

    Es exactamente como dice alberto, el evento que puedes usar para detectar si se presiono es el MouseDown, y detectas cuando se suelta con Mouseup, el evento click se produce al soltar el botón... podrías tener una variable de control, la activas con el evento MouseDown... te dejo un pequeño ejemplo:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace Ejemplo
    {
     public partial class Form1 : Form
     {
      int cantidad=0;
      bool presionado = false;
      public Form1()
      {
       InitializeComponent();
      }
    
    private void Form1_MouseDown(object sender, MouseEventArgs e)
      {
       presionado = true;
       metodo();
      }
    
      public void metodo()
      {
        cantidad++;
      }
    
      private void Form1_MouseUp(object sender, MouseEventArgs e)
      {
       presionado = false;
       MessageBox.Show(cantidad.ToString());
       cantidad = 0;
      }
     }
    
    Es un ejemplo poco funcional, pero su fin es ilustrativo... Espero te sirva, saludos

    martes, 1 de marzo de 2011 18:23
  • Hola.

    Cruznick no olvides que el evento se debe desencadenar en el control button (es lo que el cliente desea):

     private void button1_MouseDown(object sender, MouseEventArgs e)
     {
      //Tu codigo
     } 

    Saludos.


    Nicolás Herrera
    Bogotá - Colombia
    "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes
    jueves, 3 de marzo de 2011 14:21
  • Hola nicoloco...

    Si tienes razón, ocurre que en ese momento estaba a las corridas y no añadí un botón, lo hice directamente sobre el formulario pero la lógica es la misma :-) no obstante vale tu aclaración, se me paso entrar después y editarlo... Gracias amigo.

    jueves, 3 de marzo de 2011 14:32