Błąd przy usuwaniu elementów list boxa

2013-12-07 14:00

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

0

WItam!

Chcę usunąć po 1 elemencie z 3 listboxów , ale mam jakiś niezrozumiały dla mnie błąd.
user image
Po kliknięciu w "usuń słówko" wywala to :
user image
I podkreśla w kodzie to co jest na żółto .
Kod :

 /*
 * Utworzone przez SharpDevelop.
 * Użytkownik: Desmont
 * Data: 2013-11-21
 * Godzina: 14:46
 * 
 * Do zmiany tego szablonu użyj Narzędzia | Opcje | Kodowanie | Edycja Nagłówków Standardowych.
 */
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Projekcior_1._
{
    /// <summary>
    /// Description of Form1.
    /// </summary>
    public partial class Form1 : Form
    {
        public Form1()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //  
        }

        void RichTextBox1TextChanged(object sender, EventArgs e)
        {

        }

        void Button4Click(object sender, EventArgs e)
        {
            Close();
        }

        void Button1Click(object sender, EventArgs e)
        {
            if(( textBox1.Text=="")||textBox2.Text==""){
                MessageBox.Show("Pola wyżej nie mogą być puste !",
                "Ważne!",
                MessageBoxButtons.OK,
                MessageBoxIcon.Exclamation,
                MessageBoxDefaultButton.Button1);
            }
            else{
            listBox3.Items.Insert(nr, nr+1);
            listBox1.Items.Insert(nr, textBox1.Text);
            listBox2.Items.Insert(nr, textBox2.Text);
            nr++;
            groupBox1.Enabled=true;
            }
        }

        public static int nr=0;
        public static int lk=0;

        void ListBox1SelectedIndexChanged(object sender, EventArgs e)
        {
            button2.Enabled=true;

            if(listBox2.GetSelected(listBox1.SelectedIndex) == false)
            listBox2.SetSelected(listBox1.SelectedIndex,true);
            if(listBox3.GetSelected(listBox1.SelectedIndex) == false)
            listBox3.SetSelected(listBox1.SelectedIndex,true);
        }

        void ListBox2SelectedIndexChanged(object sender, EventArgs e)
        {
            button2.Enabled=true;

            if(listBox1.GetSelected(listBox2.SelectedIndex) == false)
            listBox1.SetSelected(listBox2.SelectedIndex,true);
            if(listBox3.GetSelected(listBox2.SelectedIndex) == false)
            listBox3.SetSelected(listBox2.SelectedIndex,true);
        }

        void ListBox3SelectedIndexChanged(object sender, EventArgs e)
        {
            button2.Enabled=true;
            if(listBox2.GetSelected(listBox3.SelectedIndex) == false)
            listBox2.SetSelected(listBox3.SelectedIndex,true);
            if(listBox1.GetSelected(listBox3.SelectedIndex) == false)
            listBox1.SetSelected(listBox3.SelectedIndex,true);
        }

        void Button2Click(object sender, EventArgs e)
        {
            listBox1.Items.RemoveAt(listBox1.SelectedIndex);
            listBox2.Items.RemoveAt(listBox1.SelectedIndex);
            listBox3.Items.RemoveAt(listBox1.SelectedIndex);
        }

        void Form1Load(object sender, EventArgs e)
        {
        lk=0;
        nr=0;       
        }
    }
}

Proszę o pomoc.

Pozostało 580 znaków

2013-12-07 17:17

Rejestracja: 13 lat temu

Ostatnio: 5 dni temu

0

Co jest niezrozumiałe? listbox1.SelectedIndex zwraca -1, natomiast listbox2.GetSelected(-1) powoduje wyjątek (nie ma elementu o indeksie -1 w listbox2 - przecież masz to napisane w oknie, które wkleiłeś).

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0