Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: vojok en 13 Abril 2015, 05:24 am



Título: Duda sobre pasar datos de un form a un listview C#
Publicado por: vojok en 13 Abril 2015, 05:24 am
hola Les hago una consulta,  arme un programa en C# la parte grafica pero ahora tengo un problema con el codigo estuve buscando pero no encontre nada , yo tengo 2 form el primero es el general que tiene un listview y un boton agregar cuando preciono el boton agregar me sale el form2 con un textbox que se tiene que ingresar el nombre(ejemplo,tiene muchos textbox) y un boton que dice aceptar que al darle click me tiene que volver al primer form y me tiene que aparecer ese dato(nombre) en el listview como lo paso de un formulario a otro y que aparezca en el listview tienen idea??

otra consulta:en el segundo formulario tengo varios texbox para ingresar dni,nombre,apellido,sueldo,etc... y en el listview solo hago que me aparezca dni y sueldo pero cuando selecciono su dni me aparezca la ficha con sus datos(nombre,apellido,sueldo,etc) eso se tendria que hacer con bases de datos???

Les hago estas consultas poque recien estoy aprendiendo C# y mucho no entiendo estoy siguiendo unos videos pero les falta algunas cosas explicar.


Título: Re: Duda sobre pasar datos de un form a un listview C#
Publicado por: DarK_FirefoX en 13 Abril 2015, 06:01 am
Sobre la primera consulta:

Como dices tienes un Form1 con un ListBox y un Button. Este botón te muestra el segundo form (Form2) que tienes tu TextBox y tu Button de "Aceptar". Voy a asumir que sabes mostrar el segundo formulario.

Ahora, te explico, los controles en Windows Forms por defecto se crean con visibilidad en private. Puedes hacer que tu ListBox sea public. Le cambias la propiedad Modifiers en el inspector de propiedades a public. Cuando un objeto tiene visibilidad private implica que no es visible (accesible) desde fuera del ámbito de la clase, caso contrario para public, si es accesible fuera del ámbito)

 Luego en tu Form2 vas a tener una variable tipo Form1.

Código
  1. public partial class Form2 : Form
  2.    {
  3.        public Form1 mainForm; //Esta variable va a tener una referencia al Form1
  4.  
  5.        public Form2()
  6.        {
  7.            InitializeComponent();
  8.        }
  9. //(......)
  10.  

Ahora en el momento que muestres el Form2, antes de mostrarlo, le creas una instancia y le asignas a esa variable mainForm una referencia a Form1

Sería algo así:

Código
  1. Form2 form2 = new Form2();
  2.            form2.mainForm = this;
  3.            form2.ShowDialog();

Luego desde tu Form2 tendrás acceso a la instancia del ListBox por haberla hecha public (Accesible) (Fijate que vamos a acceder a la ListBox desde fuera del ámbito del Form1, o sea, desde el Form2)

Por lo tanto en el método del Button "Aceptar" podrás hacer lo siguiente:

Código
  1. mainForm.listBox.Items.Add(textBox.Text);
  2.            this.Close();

Sobre la segunda consulta:

Citar
eso se tendría que hacer con bases de datos???

No necesariamente.

La pregunta sería, ¿quieres que se guarden los datos incluso si cierras la aplicación?

En caso de que no quieras, puedes guardarlo en memoria (limitaciones como alto consumo de memoria RAM si hay muchos datos, ah, y que cierres el programa y lo pierdas todo).

En caso de que si quieras guardarlo hay varias opciones:

- Documentos de textos
- Serialización (manera de codificar un objeto en un archivo, por lo tanto deberías enfocar tu programa a que sea orientado a objetos)
- Base de datos

Espero esto te ayude.
Salu2s


Título: Re: Duda sobre pasar datos de un form a un listview C#
Publicado por: vojok en 13 Abril 2015, 15:58 pm
muchas gracias DarK_FirefoX ya lo pude hacer,lo voy a hacer con bases de datos para tener todo mas ordenado!, Conocen algun manual online o libro bueno de C# que explique bien y todo esto de manejo de form ?