Ayuda al copiar de un textbox. !! C#

Iniciado por Hartigan, 11 Mayo 2010, 17:14 PM

0 Miembros y 1 Visitante están viendo este tema.

Hartigan

Hola, tengo un listbox en el que se almacenarán nombres. Entonces para agregar los nombres he creado un botón "añadir" que al presionarlo carga un formulario simple con un textBox en el que se introduce el nombre y al darle a aceptar quiero que se añada al listBox.

Como puedo hacerlo??? porque no consigo ver desde el método del botón aceptar del nuevo formuladio el listBox....



gracias de antemano.

DaNuK

dejame ver si te entendi

capturas el nombre en un textbox y cuando le des clic en aceptar se añada al listbox
es muy facil
aki te dejo el codigo
Código (csharp) [Seleccionar]

private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Add(textBox1.Text);
           
        }
private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }

espero te sirve
saludos

<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>

Shell Root

#2
En la forma que lo haces tú (DaNuK), sería la forma correcta si estuviese dentro del mismo formulario. Pero como bien lo dijo Hartigan, es un formulario aparte. Intentad buscar 'Instanciar formularios en c-sharp'. Será algo como estó:
Código (csharp) [Seleccionar]


  frmFormulario1 frmForm1 = new frmFormulario1();
  frmForm1.Show();

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

[D4N93R]

Recomendación: No usen "" para indicar un String vacío. Usen String.Empty. Ya que es estático y es una sola instancia de "".

Saludos!

DaNuK

como no te entiendo D4n3R sobre string.empty podrias poner un ejemplo porfas

<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>

Shell Root

Supongamos que quieres hacer algo como estó:
Código (csharp) [Seleccionar]
if(strVacio != ""){
 //Acciones
}


La mejor forma de hacerlo con String.Empty es así:
Código (csharp) [Seleccionar]
if(strVacio != String.Empty){
 //Acciones
}


Aunque creo que da igual la forma en que lo uses, no le veo la diferencia entre usar una u otra. Tal vez sea estilo de programación.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

DaNuK


<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>

[D4N93R]

Hola,

Debes usar "" cuando lo comparas con un valor en loop, ya que el runtime conoce el valor de "" justo antes del JIT.

Acuerdense que en .Net todo es un objeto por lo que cada vez que usas "" creas uno. Por lo cual es un poco más eficiente usar String.Empty que "".

Caemos en un dilema, un loop de 10.000, si usamos "" creamos 10.000 objetos más; si usamos String.Empty no los creamos, pero cada vez que se acceda a la propiedad se pierde un poco de tiempo.

Es cuestión de evaluar.

Saludos!

[D4N93R]

Por cierto la opción más rápida es .Length == 0

Atrum

Bueno pues volviendo un poco al tema, con respecto a el problema de Hartigan parece que lo que se necesita es una variable publica en el formulario 2 para que haga referencia al listbox del formulario 1

Bueno yo lo haria asi:

Dentro de la clase de mi formulario 2 se declara una variable publica del tipo ListBox:

Código (csharp) [Seleccionar]

public ListBox MyList;


Despues al instanciar el formulario 2 desde el formulario 1 hacemos esto para asignarla:

Código (csharp) [Seleccionar]

Form2 frmNombres = new Form2();
frmNombres.MyList = listBox1;
frmNombres.Show();


Donde el ListBox1 es donde se quieren agregar los nombres.

Y ya en el codigo del boton que agrega el nombre en el formulario 2 hacemos esto:

Código (csharp) [Seleccionar]

        private void button1_Click(object sender, EventArgs e)
        {
            MyList.Items.Add(textBox1.Text);
        }



En teoria debe de funcionar, lo que se hace es pasar el objeto listbox del form 1 como referencia al  form 2 mediante una variable publica, al momento de asignarlo son 2 variables de distintas clases que hacen referencia al mismo objeto, ya que jamas creas la instancia nueva con "new", al agregar los nombres desde el form2 debera aparecer en el listbox del form 1.

Nota: Si nunca haces la asignacion frmNombres.MyList = listBox1 tendras un error de referencia nula.

Saludos.