Llamar Objetos con botones (C#)

LeeSinGafas

Es un problema que me está calentando la cabeza mucho.
En un windows form application:

      
public Form1() { InitializeComponent(); Galgo Perro1 = new Galgo(0, 0, 0,0,0); // Creo el objeto } public class Galgo // Constructor del objeto { /////////////////////Codigo sin importancia //////////////////////////// { /////////////////////Codigo sin importancia //////////////////////////// } public void Run() { /////////////////////Codigo sin importancia //////////////////////////// } } public void button2_Click(object sender, EventArgs e) { Perro1.Run() // AQUI el problema }

Si pongo: Perro.Run() debajo de donde creo el objeto (linea 5) si ejecuta lo que quiero, pero el problema reside cuando quiero que eso se ejecute cuando pulso el botón. (Linea 24)
No se como comunicar el objeto que creo en la linea 4 con los botones
Espero haber sido claro, gracias de antemano

Esmoris

Tienes que crear un Clicklistener

ej:

void ButtonOnClick(object sender, RoutedEventArgs args)
        {
            MessageBox.Show("The button has been clicked", Title);
        }

http://www.java2s.com/Tutorial/CSharp/0470__Windows-Presentation-Foundation/Buttonclickeventlistener.htm

Échale un vistazo a esa página, estoy seguro que solucionará tu duda.

1 respuesta
LeeSinGafas
       public void button2_Click(object sender, EventArgs e)
        {
            Perro1.Run()   // AQUI el problema
        }

#2 En que se diferencia eso de lo que has puesto?, he probado varias cosas y nada
Soy muy noob en esto, creo que el problema es que el botón donde quiero llamar al objeto está fuera del form1 y de ahí que no lea el objeto Galgo que está dentro

Esmoris

Creo que deberías hacer que todo el código estuviera dentro del form.

Soltrac

A ver, no me entero.

Lo que quieres decir es que button2_Click no se está disparando? Haz debug paso a paso en el evento a ver si dispara y si no lo hace te vas a los eventos del botón y asegúrate que el evento click del botón es "button2_Click".

Edit: Joder, lo estás haciendo mal. button2_Click está fuera del formulario. Bórralo y ve aquí en Visual Studio.

1 1 respuesta
LeeSinGafas

#5 Lo he borrado y he ido ahí, pero... ¿y ahora que?. Hago doble click en Click pero me sigue abriendo la función del botón en el mismo sitio, donde no encuentra el objeto creado en (Perro1).

Pruebo a mover la función dentro del Form1, pero no me deja. Es como si entendiera que se ha declarado el objeto: Galgo, pero no entiende que se a creado a Perro1, por lo tanto no puedo llamar a Perro1.Run() pulsando el botón
También he probado a mover la clase en el Form1, pero saltan diversos errores
Seguro que es muy sencillo, pero amí me está matando esto :palm:

1 respuesta
Soltrac

#6 Tienes algo mal, si quieres, me conecto por TeamViewer por remoto y te lo miro porque es una chorrada.

Pásame la conexión por privado y te lo hago en un segundo.

LeeSinGafas

Solucionado!
Gracias!

Usuarios habituales

  • LeeSinGafas
  • Soltrac
  • Esmoris