Ayuda al copiar de un textbox. !! C#

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

0 Miembros y 2 Visitantes están viendo este tema.

[D4N93R]

Si, pero igual vuelvo yo jeje..

No uses miembros públicos, utiliza propiedades para acceder a éstos.


Código (csharp) [Seleccionar]
public ListBox MyListBox
{
     set { m_myListBox = value; }
     get { return m_myListBox; }
}

Hartigan

#11
Gacias a todos por las respuestas pero me da el siguiente error haciendo lo que dice Xtriker:

Citar
No se controló System.NullReferenceException
 Message="Referencia a objeto no establecida como instancia de un objeto."
 

Como sería usando la propiedad D4N93R????  esque aun soy bastante novato en esto y no las controlo muy bien. xDD

Salu2.

Atrum

Asi tal y como lo puso D4N93R, declaras tu miembro privado y accedes a el desde la propiedad:

Código (csharp) [Seleccionar]

private Listbox m_myListBox;

public ListBox MyListBox
{
     set { m_myListBox = value; }
     get { return m_myListBox; }

}


lo de la referencia nula te lo marca por que MyListBox tiene el valor Null y no esta asociada con ninguna instancia, pero no se exactamente donde este el problema recien lo probe y me funciono bien, tal ves si pones la parte de tu codigo para checarlo podemos verificar que esta mal.

Por que no colocas un punto de interrupcion en donde asignas el Listbox al miembro publico o a la propiedad, y checas los valores de las variables hasta ese momento y vas ejecutando paso por paso para ver por que se queda tu objeto como null.


Hartigan

Este es el código:

En el formulario 1, tengo esto:

Código (csharp) [Seleccionar]

namespace Agenda_1._0.IGU
{    
   public partial class Interfaz_NuevoContacto : Form
   {
       
       public Interfaz_NuevoContacto()
       {            
           InitializeComponent();

           Interfaz_NuevoEmail frmNuevoEmail = new Interfaz_NuevoEmail();
           frmNuevoEmail.myListBox = listBox_Email;
           frmNuevoEmail.Show();
           
       }

       private void button_AañadirEmail_Click(object sender, EventArgs e)
       {
           Interfaz_NuevoEmail interfazNuevoEmail = new Interfaz_NuevoEmail();
           interfazNuevoEmail.Show();
       }
.....


en el formulario 2 tengo:

Código (csharp) [Seleccionar]

namespace Agenda_1._0.IGU
{
   public partial class Interfaz_NuevoEmail : Form
   {
       //Variable publica para copiar datos al Form Nuevo_contacto
       public ListBox myListBox;
       

       public Interfaz_NuevoEmail()
       {
           InitializeComponent();            
       }        
...

        private void button_AñadirCE_Click(object sender, EventArgs e)
       {
           myListBox.Items.Add(textBox_AñadirCE.Text);
       }
...

}




De momento lo tengo puesto con la variable pública, en cuanto me funcione lo cambio por la propieda.

Salu2.

[D4N93R]

Supongo que el error te lo da en myListBox.Items.Add(textBox_AñadirCE.Text);

Tienes que asegurarte de que en frmNuevoEmail.myListBox = listBox_Email;   listBox_Email no este nulo..

Hartigan

Cita de: D4N93R en 14 Mayo 2010, 19:21 PM
Supongo que el error te lo da en myListBox.Items.Add(textBox_AñadirCE.Text);

Tienes que asegurarte de que en frmNuevoEmail.myListBox = listBox_Email;   listBox_Email no este nulo..

Efectivamente el error me lo da ahí. Pero como hago que no esté nulo si primeramente quiero que el listBox este vacio, es decir que no haya ningun email agregado...???

Atrum

Bueno, al parecer el error esta aqui:

Al crear una nueva instancia de la clase Interfaz_NuevoEmail, myListBox esta con valor null, entonces en esta parte del codigo no le asignas nada a myListBox

Código (csharp) [Seleccionar]


        private void button_AañadirEmail_Click(object sender, EventArgs e)
        {
            Interfaz_NuevoEmail interfazNuevoEmail = new Interfaz_NuevoEmail();
            'Aqui faltaria interfazNuevoEmail.myListBox = listBox_Email
            interfazNuevoEmail.Show();
        }



Por curiosidad por que creas una instancia del Interfaz_NuevoEmail en el constructor?

[D4N93R]

listBox_Email en un listbox en el formulario, o simplemente una variable tipo listbox?

43H4FH44H45H4CH49H56H45H

Cita de: Hartigan en 14 Mayo 2010, 19:27 PMEfectivamente el error me lo da ahí. Pero como hago que no esté nulo si primeramente quiero que el listBox este vacio, es decir que no haya ningun email agregado...???

Te toca mejorarlo pero puedes probar asi:

Form1:

Código (csharp) [Seleccionar]
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 Mail
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            DialogResult resul = new DialogResult();
            resul = f2.ShowDialog();
            if (resul == DialogResult.OK && f2.mail != string.Empty)
            {
                listBox1.Items.Add(f2.mail);
            }
        }
    }
}


Form2:

Código (csharp) [Seleccionar]
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 Mail
{
    public partial class Form2 : Form
    {
        public string mail;
       
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            button1.DialogResult = DialogResult.OK;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            mail = textBox1.Text;
        }
    }
}

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

Hartigan

Cita de: Xtriker en 14 Mayo 2010, 20:19 PM
Bueno, al parecer el error esta aqui:

Al crear una nueva instancia de la clase Interfaz_NuevoEmail, myListBox esta con valor null, entonces en esta parte del codigo no le asignas nada a myListBox

Código (csharp) [Seleccionar]


        private void button_AañadirEmail_Click(object sender, EventArgs e)
        {
            Interfaz_NuevoEmail interfazNuevoEmail = new Interfaz_NuevoEmail();
            'Aqui faltaria interfazNuevoEmail.myListBox = listBox_Email
            interfazNuevoEmail.Show();
        }



Por curiosidad por que creas una instancia del Interfaz_NuevoEmail en el constructor?


Lo hago para poder mostrar el segundo formulario. Es decir, el primer formulario lo llamo Interfaz_NuevoContacto y el segundo Interfaz_NuevoEmail. De esa manera cargo al pulsar el botón... xD

Cita de: D4N93R en 14 Mayo 2010, 20:44 PM
listBox_Email en un listbox en el formulario, o simplemente una variable tipo listbox?

Es el nombre del listBox dentro del fomulario 1. osea del fomulario Interfaz_Nuevo contacto.


Cita de: 43H4FH44H45H4CH49H56H45H en 14 Mayo 2010, 21:34 PM
Cita de: Hartigan en 14 Mayo 2010, 19:27 PMEfectivamente el error me lo da ahí. Pero como hago que no esté nulo si primeramente quiero que el listBox este vacio, es decir que no haya ningun email agregado...???

Te toca mejorarlo pero puedes probar asi:



Gracias, lo pruebo y te comento.

Gracias a todos por la ayuda, probaré a ver lo que me decis a ver si funciona.