elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: 4n4lDetector v1.3: herramienta de análisis estático de malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderadores: Novlucker, seba123neo, kub0x, Eleкtro)
| | | |-+  Error: Se requiere una referencia de objeto para el campo...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error: Se requiere una referencia de objeto para el campo...  (Leído 544 veces)
RevolucionVegana


Desconectado Desconectado

Mensajes: 462



Ver Perfil
Error: Se requiere una referencia de objeto para el campo...
« en: 11 Abril 2017, 23:08 »

Hola a todos os cuento tengo un form que tiene un boton y un datagridview el caso es que cuando le das al boton se abre una ventanita con un datagridview, seleccionamos la casilla que queramos y le damos clic en el boton "Aceptar" cuando le damos clic en aceptar mi idea es que se ejecute un método del form principal y posteriormente se cierre la pequeña ventana, básicamente lo que hace ese método es rellenar el dataGridView de la ventana principal, el problema es que me da el siguiente error:

Citar
Se requiere una referencia de objeto para el campo, método o propiedad 'PanelGeneral.abrimosPresupesto()' no estáticos

PanelGeneral es el nombre del objeto que hace de form principal y abrimosPresupuesto() es un método public void que está en PanelGeneral pero que no se ha inicializado, alguien puede echarme una mano con esto, es que me tiene un poco amargado ese mensaje de error y cuando he conseguido que funcione, el caso es que he probado que cuando se de clic en Aceptar se cree un objeto de la clase PanelGeneral llamado prueba aquí funciona pero no funciona, me explico he puesto un MessageBox.Show() de prueba y me lo abre pero claro como tengo que afectar a un datagridview que está en un objeto diferente pues eso que es lo que me interesa no me lo hace.

En fin alguien me puede echar una mano :S?

Gracias y saludos


En línea

BULERIA BULERIAAAAAAA TAN DENTRO DEL ALMA MIA ESA SANGRE DE LA TIERRA EN QUFLWEOKWFKGWE
Eleкtro
Novato Astral y
Moderador Global
***
Conectado Conectado

Mensajes: 9.058


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Error: Se requiere una referencia de objeto para el campo...
« Respuesta #1 en: 12 Abril 2017, 02:50 »

Hola.

PanelGeneral es el nombre del objeto que hace de form principal y abrimosPresupuesto() es un método public void que está en PanelGeneral pero que no se ha inicializado

Tú mismo te estás dando la solución: Para poder llamar al método de instancia abrimosPresupuesto() primero debes crear una instancia de la clase donde hayas definido ese método. Eso es lo que te está intentando decir ese mensaje de error:

Código
  1. public class Class1 {
  2.    public Class1() {}
  3.    public void abrimosPresupuesto() {}
  4. }

Código
  1. Class1 instance = new Class1();
  2. instance.abrimosPresupuesto();

No hay otra manera, un método de instancia es un método de instancia.

En el caso de que el método abrimosPresupuesto() lo hayas esrito con la intención de poder llamarlo de forma global/rehutilizable, entonces la alternativa sería modificar la accesibilidad de dicho método para poder llamarlo sin instanciar la clase; para ello le asignarías el modificador de acceso static:

Código
  1. public class Class1 {
  2.    public Class1() {}
  3.    public static void abrimosPresupuesto() {}
  4. }

Código
  1. Class1.abrimosPresupuesto();

...Esto te lo expliqué por encima en el código que compartí en este otro post:

¡Saludos!


« Última modificación: 12 Abril 2017, 03:00 por Eleкtro » En línea


RevolucionVegana


Desconectado Desconectado

Mensajes: 462



Ver Perfil
Re: Error: Se requiere una referencia de objeto para el campo...
« Respuesta #2 en: 12 Abril 2017, 12:57 »

Vale gracias al final lo hice de otra forma en plan sin ventanear la verdad que para el próximo proyecto voy a intentar hacer el código más limpio prácticamente todos mis problemas están viniendo de un código desordenado, un desastre vamos.

Saludos
En línea

BULERIA BULERIAAAAAAA TAN DENTRO DEL ALMA MIA ESA SANGRE DE LA TIERRA EN QUFLWEOKWFKGWE
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines